Kotlin版本不兼容求助:元数据版本1.8.0与预期1.6.0不符
解决Kotlin版本不兼容编译问题
问题根源
- 项目Kotlin版本配置混乱:
buildscript中定义的kotlin_version为1.4.32,但实际引用的Kotlin Gradle插件版本是1.6.10,版本不一致导致环境预期版本错乱。 - 依赖的
annotation-jvm模块使用Kotlin 1.8编译,生成的元数据版本与项目当前预期的1.6版本不兼容。
解决方案
1. 统一并升级Kotlin版本
修改项目根目录build.gradle的buildscript块,统一Kotlin版本为兼容1.8元数据的稳定版,同时升级Gradle插件到适配该Kotlin版本的版本:
buildscript { // 统一使用Kotlin 1.8系列稳定版,适配报错中的元数据版本 ext.kotlin_version = '1.8.22' ext.anko_version='0.10.8' repositories { jcenter() maven { url 'https://maven.google.com/' name 'Google' } google() } dependencies { // 升级Gradle插件到与Kotlin 1.8兼容的版本(7.4.2为适配版本) classpath 'com.android.tools.build:gradle:7.4.2' classpath 'com.google.gms:google-services:4.3.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' // 同步Kotlin插件版本与ext中定义的版本,避免版本不一致 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1' classpath 'com.google.firebase:perf-plugin:1.4.1' } }
2. 强制统一所有依赖的Kotlin版本
在根目录build.gradle的allprojects块中添加版本强制策略,避免第三方依赖拉取不同版本的Kotlin模块:
allprojects { repositories { // 保留原有仓库配置 jcenter() google() maven { url 'https://maven.google.com/' } } configurations.all { resolutionStrategy { // 强制所有依赖使用指定的Kotlin版本 force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" force "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" force "org.jetbrains.kotlin:kotlin-annotation-jvm:$kotlin_version" } } }
3. 清理缓存并重新编译
- 执行Gradle清理任务:Windows系统运行
gradlew clean,Mac/Linux运行./gradlew clean - 删除本地Gradle缓存目录:
C:/Users/LENOVO/.gradle/caches - 重新同步项目并执行编译
注意事项
- Anko 0.10.8版本较旧,可能与Kotlin 1.8存在兼容性问题,若出现新报错,建议替换为Jetpack Compose或其他现代UI框架,或查找适配Kotlin 1.8的Anko版本。
- 确保Gradle插件版本与Kotlin版本匹配,避免因版本不兼容引发新问题。
内容的提问来源于stack exchange,提问作者Parmit Singh Malik
相关产品推荐
相关产品推荐

