2024년 5월 21일 화요일

KSP? KAPT? annotationProcessor?

증상:

  • Room tutorial 수행 중 kapt? ksp? 의존성을 추가하는 부분이 있었고 적용하였더니 빌드 에러가 발생했다
    • 어떤 함수를 찾지 못하는 문제
      • java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.incremental.IncrementalCompilationContext.<init>(org.jetbrains.kotlin.incremental.storage.FileToPathConverter, org.jetbrains.kotlin.incremental.storage.FileToPathConverter, boolean, org.jetbrains.kotlin.incremental.CompilationTransaction, org.jetbrains.kotlin.build.report.ICReporter, boolean, boolean, boolean, int, kotlin.jvm.internal.DefaultConstructorMarker)'
    • Impl 클래스가 없다고 하는 문제
      • Android room persistent: AppDatabase_Impl does not exist
  • 그래서 KSP 가 뭔지 구글링 하다 보니 kapt 에서 ksp 로 mirgration 하는 문서가 있었다 (kapt 는 ksp 의 전신이며 ksp 가 kapt 보다 빌드 속도가 많이 개선되었다고 함)
  • kapt 는 또 뭔가 해서 찾아보았더니 그전에 사용되던 annotationProcessor 가 바뀐거란다 (참고: https://3edc.tistory.com/65)
  • 원하는 설명은 찾기 어렵고 후신의 플러그인들만 검색되는 상태


해결법:



댓글 없음:

댓글 쓰기