Android

Kotlin KAPT(Kotlin Annotation Processing Tool) 이란

Darane 2021. 9. 13. 09:31

kotlin KAPT(Kotlin Annotation Processing Tool)에 대한 글입니다.

 

Kotlin에서 Annotation처리를 위해서 KAPT(Kotlin Annotation Processing Tool)을 제공합니다.

Project 내부에서 Hilt, Room, Databinding 등 library가 사용된다면 기존에 annotationProcessor에서 kapt로 바꾸어 선언하는 게 필요합니다.

 

Kotlin은 kotlinc로 컴파일되기 때문에 기존에 Java로 작성된 Annotation Process로는 Kotlin의 Annotation이 제대로 처리되지 않습니다.

예를 들어 Android의 Room library를 사용하다가 아래와 같은 Exception을 만날 수도 있습니다.

java.lang.RuntimeException: cannot find implementation for database ... _Impl does not exist

 

Gradle에 kapt plugin을 적용하는 방법은 아래와 같습니다.

plugin 추가

plugins {
    kotlin("kapt") version "1.5.30" 
}

또는

apply plugin: 'kotlin-kapt'

 

 

Library를 사용할 때 annotationProcessor를 kapt로 변경해 주어야 합니다.

dependencies {
    // annotationProcessor -> kapt
    kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
}

testAnnotaionProcessor는 kaptTest로 변경해야 한다.

 

kapt 사용 시 호환성에 주의해야 합니다. 사용하는 library가 kapt를 지원하는지 확인해야 합니다.

만약 지원하지 않는다면 라이브러리가 정상적으로 동작하지 않을 수 있습니다.

반응형