类路径中运行时JAR文件版本不一致警告问题求助
解决Runtime JAR版本不一致的警告
问题原因
这个警告源于项目中存在多版本的Kotlin Runtime JAR包,大概率是依赖库引入了与你指定版本不一致的Kotlin标准库,或是Android Gradle Plugin(AGP)自带的Kotlin依赖和手动配置版本产生了冲突。
解决方案
1. 强制统一所有Kotlin依赖版本
在项目根目录的build.gradle中添加版本强制策略,确保所有模块使用相同版本的Kotlin核心库:
buildscript { ext.kotlin_version = '1.6.10' dependencies { classpath 'com.android.tools.build:gradle:7.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } // 新增版本统一配置 allprojects { repositories { google() mavenCentral() // 其他项目使用的仓库 } configurations.all { resolutionStrategy { // 强制所有Kotlin核心库使用指定版本 force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" force "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" } } }
2. 优化Kotlin标准库依赖配置
Android项目中推荐使用统一的kotlin-stdlib依赖,而非带jdk7后缀的版本——AGP会根据你的编译SDK自动适配对应标准库版本,降低冲突概率。修改app模块的build.gradle:
// 替换原有的stdlib-jdk7依赖 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
3. 定位冲突来源(可选)
如果上述方法未解决问题,可通过Gradle命令查看依赖树,找出引入冲突版本的具体依赖:
# Windows系统使用gradlew.bat ./gradlew app:dependencies
在输出结果中搜索kotlin-stdlib,找到版本不一致的依赖项后,针对性用resolutionStrategy.force强制替换为指定版本即可。
4. 确认AGP与Kotlin版本兼容性
AGP与Kotlin版本存在严格兼容要求,AGP 7.1.2官方推荐的Kotlin版本就是1.6.10,你的当前配置是匹配的。后续如需升级,可参考官方兼容性矩阵调整版本组合。
内容的提问来源于stack exchange,提问作者Edward Philip Guarin
相关产品推荐
相关产品推荐

