升级Kotlin 2.0.0并替换Kapt为KSP后仍出现Kapt版本兼容警告的原因咨询
升级Kotlin 2.0.0并替换Kapt为KSP后仍出现Kapt版本兼容警告的原因咨询
问题描述
我把Android应用升级到Kotlin 2.0.0,并且把Dagger的注解处理器从Kapt替换成了KSP,但构建应用时还是收到了如下警告:
Task :common:persistence:kaptGenerateStubsDebugKotlin
w: Kapt currently doesn't support language version 2.0+. Falling back to 1.9.
我已经在Android Studio里搜遍了整个项目源码,完全找不到任何Kapt的引用,为什么还会出现这个警告呢?
可能的原因及排查方案
- 第三方依赖暗藏Kapt引用:有些老版本的第三方库(比如某些Dagger的衍生库、或者其他需要注解处理的工具库)可能在内部依赖了Kapt插件,哪怕你自己的代码里没加,这些依赖也会触发Kapt相关任务。你可以在Android Studio的Gradle面板中,找到
common:persistence模块的dependencies任务,执行后查看完整的依赖树,排查是否存在带kapt的依赖项。 - 模块间的传递依赖问题:如果你的
common:persistence模块依赖了其他子模块,而那个子模块还没完成Kapt到KSP的替换,Kapt配置会通过依赖传递过来。检查该模块的依赖列表,确认所有关联模块都已经移除了Kapt配置。 - Gradle缓存残留:Gradle的缓存有时候会保留旧的配置信息,哪怕你已经删除了代码里的Kapt引用。可以尝试执行命令清理缓存:
Windows环境则执行:./gradlew cleanBuildCache
清理完成后重新构建项目,看看警告是否消失。gradlew cleanBuildCache - 多模块配置遗漏:多模块项目很容易忽略某个模块的配置更新,确认你在所有模块的
build.gradle.kts(或.gradle)文件中都移除了id 'kotlin-kapt'插件,并且正确添加了KSP插件:id 'com.google.devtools.ksp'。
备注:内容来源于stack exchange,提问作者user23185393
相关产品推荐
相关产品推荐

