안드로이드 <Kotlin>

[android] Could not find method kapt() for arguments 에러 해결 (Room 사용 시)

TaeGyeong Lee 2023. 11. 22. 02:49

개요

Room은 안드로이드에서 SQLite를 손쉽게 사용하게 만드는 미들웨어입니다. Room을 가이드에 따라 진행 시 다음과 같은 에러를 접할 수 있습니다.

Could not find method kapt() for arguments

 

해결 방법

kapt를 모두 annotationProcessor으로 바꾸어 주세요.

바꾸기 전

def room_version = "2.5.0"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // To use Kotlin annotation processing tool (kapt)
    kapt "androidx.room:room-compiler:$room_version"
    // To use Kotlin Symbol Processing (KSP)
    ksp "androidx.room:room-compiler:$room_version"

 

바꾼 후

def room_version = "2.5.0"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // To use Kotlin annotation processing tool (kapt)
    annotationProcessor "androidx.room:room-compiler:$room_version"
    // To use Kotlin Symbol Processing (KSP)
    annotationProcessor "androidx.room:room-compiler:$room_version"

 

원인

kapt는 코틀린에서만 사용가능한 문법입니다. groovy에서 kapt와 동일한 문법은 annotationProcessor 입니다.

Annotation processors (see JSR 269 ) are supported in Kotlin with the kapt compiler plugin. https://kotlinlang.org/docs/kapt.html#use-in-gradle

따라서 groovy로 작성한 gradle 스크립트의 경우 kapt가 아닌 annotationProcessord을 써야 합니다.

 

참고 자료

 

kapt compiler plugin | Kotlin

 

kotlinlang.org

 

Room을 사용하여 로컬 데이터베이스에 데이터 저장  |  Android 개발자  |  Android Developers

Room 라이브러리를 사용하여 더 쉽게 데이터를 유지하는 방법 알아보기

developer.android.com

 

Could not find method kapt() for arguments

I'm facing a problem for over 3 days now and I can't solve. since I started to use Kotlin for Android,I stopped using "annotationProcessor" and started using "kapt", all things were working great w...

stackoverflow.com