升级Kotlin至1.9.10后Android Compose项目构建失败求助
Kotlin 1.9.10升级后kaptGenerateStubsDebugKotlin任务失败排查方案
1. 对齐Kapt与Kotlin插件版本
Kotlin 1.9.x对kapt版本要求严格,必须和Kotlin Gradle插件版本完全一致,不能出现版本不匹配:
- 检查根目录
build.gradle(或build.gradle.kts)中的Kotlin插件版本:plugins { id 'com.android.application' version '8.2.0' apply false id 'org.jetbrains.kotlin.android' version '1.9.10' apply false } - 确保app模块中没有指定旧版本的kapt依赖,所有注解处理器相关的kapt配置自动继承插件版本。
2. 清理Stub文件并重新构建
手动清理kapt生成的缓存文件,避免旧文件干扰:
- 删除
app/build/generated/source/kapt和app/build/tmp/kapt目录下的所有内容 - 在终端执行详细日志构建命令,定位具体错误模块:
./gradlew clean :app:kaptGenerateStubsDebugKotlin --info
日志中会显示更具体的加载失败原因,比如某个类的引用错误、注解处理器异常。
3. 验证注解处理器兼容性
项目中使用的注解处理器(Room、Dagger等)必须支持Kotlin 1.9.10:
- Room需使用2.5.0及以上版本:
implementation "androidx.room:room-runtime:2.5.2" kapt "androidx.room:room-compiler:2.5.2" - Dagger需使用2.48及以上版本,其他注解处理器请核对官方兼容文档。
4. 匹配Compose与Kotlin版本
Compose和Kotlin版本有严格对应关系,Kotlin 1.9.10对应Compose稳定版为1.5.4:
- 检查app模块中Compose依赖版本:
implementation "androidx.compose.ui:ui:1.5.4" implementation "androidx.compose.material3:material3:1.1.2" implementation "androidx.compose.ui:ui-tooling-preview:1.5.4"
避免使用不兼容的Compose版本导致模块加载失败。
5. 排查依赖冲突
第三方库可能引入旧版本Kotlin依赖,导致版本冲突:
- 运行命令查看依赖树:
./gradlew :app:dependencies - 若发现版本冲突,在根目录
build.gradle添加强制统一配置:subprojects { configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10" force "org.jetbrains.kotlin:kotlin-reflect:1.9.10" } } }
6. 检查代码中注解相关问题
Kotlin版本升级后对语法检查更严格,可能触发旧代码中的隐藏问题:
- 排查使用kapt注解的类(如Room Entity、Dagger Module),检查是否有语法错误、引用不存在的类或注解参数错误
- 避免使用废弃注解,或注解处理器未适配的Kotlin 1.9新特性
内容的提问来源于stack exchange,提问作者Thedarlin
相关产品推荐
相关产品推荐

