Android Studio中Kotlin版本不兼容错误:期望Metadata 1.6.0,实际为1.9.0
解决多模块Android项目Kotlin版本冲突(不升级到1.9.0)
问题根源
错误提示里的agent-android-8.283.1.1004-api.jar是用Kotlin 1.9编译的,和你的项目使用的Kotlin 1.6元数据版本不兼容。这个依赖大概率是间接引入的(不是你手动在build.gradle中添加的),所以第一步要先定位它的来源。
具体解决方案
1. 定位冲突依赖的来源
在项目根目录执行Gradle命令,查看目标模块的依赖树,找出哪个父依赖引入了这个agent-android库:
# 替换app为你的主模块或出现错误的模块名称 ./gradlew app:dependencies
在输出结果中搜索agent-android,找到它的上层依赖(比如com.xxx:some-third-party-sdk:1.0.0)。
2. 降级父依赖版本
如果找到的父依赖有兼容Kotlin 1.6的旧版本,直接替换该依赖的版本号。比如原来的依赖是:
implementation 'com.xxx:some-third-party-sdk:2.0.0'
查询该SDK的历史版本,换成用Kotlin 1.6及以下编译的版本(比如1.5.0),重新同步Gradle。
3. 强制指定兼容版的agent-android依赖
如果无法降级父依赖,就用Gradle的依赖强制策略,将agent-android替换为兼容Kotlin 1.6的版本:
在项目级build.gradle或对应模块的build.gradle中添加:
configurations.all { resolutionStrategy { // 替换为实际的groupId、artifactId和兼容版本号 force 'com.target-group:agent-android:7.X.X' } }
注意:需要从之前的依赖树里获取该依赖的groupId,并找到编译Kotlin版本≤1.6的历史版本。
4. 排除冲突依赖(如果不需要该功能)
如果你的项目不需要这个agent-android的功能,可以直接从父依赖中排除它:
implementation('com.xxx:some-third-party-sdk:2.0.0') { // 替换为agent-android实际的groupId和artifactId exclude group: 'com.target-group', module: 'agent-android' }
验证修复
修改完成后,执行以下命令清理并重新构建项目:
./gradlew clean build
如果构建成功,说明冲突已解决。
内容的提问来源于stack exchange,提问作者cmanrg
相关产品推荐
相关产品推荐

