Still yet

"아직"이란 표현은 무한한 가능성이라고 믿는 개발자

Dev/Android

[Android] migration kapt to ksp (kotlin version later than "1.9.x"⬆️)

Stillet 2025. 1. 8. 10:24

안녕하세요. 

 

안드로이드 라이브러리 버전 업데이트를 하는중

kotlin버전이 "1.9.x"를 초과할 때 kapt를 사용할 경우, kotlin의 버전을 "1.9" 으로 낮춰서 실행된다는 경고메시지를 확인하고 해당 문서를 작성하게 됐습니다.

 

제가 생각한 제일 중요한 부분은 ksp의 버전을 어떤것을 선택해야되냐 입니다.

 

공식문서를 보면 "참고"부분에 kotlin 버전(ex. "2.0.0")과 ksp 앞부분 버전 (ex. "2.0.0-1.0.24")을 동일시 하라는 부분이 나옵니다. 이부분만 유의하면 공식문서의 가이드를 따라가시면 됩니다.

 

요약하면

1. kapt로 사용하고있는 라이브러리가 ksp에서도 사용되는지 확인 (ex. hilt, room)

2. kotlin의 버전과 동일한 ksp버전 확인 (https://github.com/google/ksp/releases)

3. project 수준의 build.gradle.kts에 plugins 항목에 ksp 추가

4. module 수준의 build.gradle.kts의 plugins 항목에 ksp 추가

5. dependencies 항목에서 kapt로 설정되어 있는 부분을 ksp로 수정

6. 동작 확인 후 kapt 설정 삭제 

 


2025.01.16 추가사항 

제가 tikxml이라는 xml 파서를 사용중인데, 해당 라이브러리는 ksp가 지원되지 않아서 프로젝트가 오류가 발생 했습니다.

그래서 tikxml은 kapt를 사용하고, 나머지는 ksp를 사용했더니 정상적으로 동작하는걸 확인했습니다.

이런경우도 있다 라고 생각해주시면 좋을것 같습니다.

ksp(libs.google.hilt.compiler)
ksp(libs.androidx.room.compiler)
kapt(libs.tikxml.processor)

 

 

 

해당 내용은 공식문서를 참조하여 제가 개인적으로 실행시켜 봤을때 동작한 내용입니다.

혹시 틀린부분이 있거나 알려주실 내용이 있다면 언제든 댓글로 알려주시면 감사하겠습니다.

 

감사합니다.

 

참고:

1. https://developer.android.com/build/migrate-to-ksp?hl=ko