Android项目运行时Duplicate Class错误的排查与解决
解决Android项目中Kotlin标准库重复类冲突问题
问题描述
运行Android项目时触发Duplicate Class错误,具体报错显示:kotlin.collections.jdk8.CollectionsJDK8Kt类同时存在于kotlin-stdlib-1.8.21(org.jetbrains.kotlin:kotlin-stdlib:1.8.21)和kotlin-stdlib-jdk8-1.7.20(org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)中,导致依赖冲突。
尝试过的无效解决方式
- 尝试通过排除依赖解决冲突,添加了如下配置:
apply plugin: 'org.jetbrains.kotlin' configurations { all { exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib-jdk8" } }
但执行后触发错误:"Plugin with id 'org.jetbrains.kotlin' not found"。
- 移除上述插件声明后,又出现
kotlin-stdlib与kotlin-stdlib-jdk7的重复类报错,问题仍未解决。
最终可行解决方案
在项目build.gradle的dependencies块中添加constraints配置,强制统一Kotlin标准库相关依赖的版本,确保所有依赖使用同一版本的kotlin-stdlib-jdk7和kotlin-stdlib-jdk8:
dependencies { constraints { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") { because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib") } implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0") { because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib") } } }
项目原插件配置
项目初始的build.gradle插件声明如下:
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } ...(原配置省略)
内容的提问来源于stack exchange,提问作者Rafael Souza
相关产品推荐
相关产品推荐

