[Android] kapt -> KSP migration 과정 (hilt 예시)

covy·2024년 2월 20일
post-thumbnail

서론

이 글은 이후 프로젝트에 써먹기 위해 남긴다.
kapt와 ksp 둘 다 어노테이션 처리 툴이다. kapt는 java의 anotation 처리 프로세서를 사용하여 빌드시간에 영향을 준다. ksp는 코틀린 자체 api로서 코틀린에 더 적합하며 빌드시간이 빠르다고 한다.

수정과정

어렵지는 않았다. 아래 공식문서를 참고하자.
https://developer.android.com/build/migrate-to-ksp?hl=ko

프로젝트 수준 모듈

plugins {
    id("com.google.devtools.ksp") version "1.9.22" apply false
}

트러블 슈팅

ksp-1.8.10-1.0.9 is too old for kotlin-1.9.22. Please upgrade ksp or downgrade kotlin-gradle-plugin to 1.8.10.

나는 위에 버전을
'1.8.10-1.0.9'로 했었다. 안드로이드 공식문서 따라서..
나는 코틀린 버전을 1.9.22를 쓰고 있는데, 플러그인 버전과 맞지 않는 문제가 있었다.

아래 링크를 보고 버전을 맞춰보면 될 것이다.
https://github.com/google/ksp/releases

(앱) 모듈 수준

plugins {
    id("com.google.devtools.ksp")
}

그리고 모듈 수준에서 dependency에 있는 kapt(...) -> ksp(..) 로 변환하면 된다.
ex) Hilt
변경 전

implementation("com.google.dagger:hilt-android:2.48")
kapt("com.google.dagger:hilt-android-compiler:2.48")

변경 후

implementation("com.google.dagger:hilt-android:2.48")
ksp("com.google.dagger:hilt-android-compiler:2.48")

commit 기록:
https://github.com/rhkrwngud445/Compose_App/commit/fb8206b70a57f2cdc40d163c59c026f781066018

0개의 댓글