从Kotlin 1.4.32升级至1.8.0时遇kapt执行失败问题求助
解决Kotlin 1.8.0升级后kapt元数据版本不兼容问题
核心问题分析
你遇到的Unsupported metadata version错误,主要源于两个版本不匹配问题:
- 当前使用的Android Gradle Plugin(AGP)7.1.2不支持Kotlin 1.8.0
- 项目中通过kapt引入的注解处理器(如Room、Dagger等)版本过低,无法适配Kotlin 1.8的元数据格式
分步解决方案
1. 同步升级AGP和Gradle版本
AGP与Kotlin版本存在严格兼容性约束,AGP 7.1.x仅支持Kotlin 1.5-1.6,要适配Kotlin 1.8.0,需升级AGP到7.3.x及以上,同时同步升级Gradle版本:
- 修改项目根目录
build.gradle(或build.gradle.kts)中的依赖:dependencies { // 升级AGP到支持Kotlin 1.8的版本,例如7.3.1 classpath 'com.android.tools.build:gradle:7.3.1' // 确保Kotlin Gradle插件版本与项目使用的Kotlin版本一致 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0" } - 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle分发地址,匹配AGP 7.3.x的要求:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
2. 升级所有kapt注解处理器依赖
检查项目中所有通过kapt引入的注解处理器,升级到支持Kotlin 1.8.0的版本:
- 示例(以Room为例):
implementation "androidx.room:room-runtime:2.5.0" kapt "androidx.room:room-compiler:2.5.0" implementation "androidx.room:room-ktx:2.5.0" - 示例(以Dagger为例):
implementation 'com.google.dagger:dagger:2.45' kapt 'com.google.dagger:dagger-compiler:2.45' - 其他第三方kapt依赖,需查阅官方文档确认兼容Kotlin 1.8的最低版本并统一升级。
3. 清理缓存并重建项目
- 重启Android Studio,执行
File > Invalidate Caches... > Invalidate and Restart,清除旧的IDE缓存 - 在终端执行
./gradlew clean build,或通过Gradle面板执行clean和build任务,彻底清理构建缓存后重新编译
4. 确认完全移除kotlin-android-extensions插件
检查所有模块的build.gradle文件,确保移除以下内容:
apply plugin: 'kotlin-android-extensions'- 任何与
androidExtensions相关的配置块
内容的提问来源于stack exchange,提问作者c4pn.91
相关产品推荐
相关产品推荐

