Android项目编译报错:Gradle中Kotlin标准库重复依赖求助
错误描述
Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules jetified-kotlin-stdlib-1.8.20 (org.jetbrains.kotlin:kotlin-stdlib:1.8.20) and jetified-kotlin-stdlib-jdk8-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)
Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules jetified-kotlin-stdlib-1.8.20 (org.jetbrains.kotlin:kotlin-stdlib:1.8.20) and jetified-kotlin-stdlib-jdk7-1.7.20 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20)
......(其余重复类错误省略)
问题原因
项目中Kotlin插件版本与依赖引入的Kotlin标准库版本不一致:项目级Gradle配置的Kotlin插件为1.7.0,但部分第三方依赖自动引入了1.8.20版本的kotlin-stdlib,同时项目中存在1.7.20版本的kotlin-stdlib-jdk7/jdk8,导致类文件重复冲突。
解决方案
1. 统一Kotlin插件版本
修改项目级build.gradle中的Kotlin插件版本,与kotlin-stdlib-jdk7/jdk8版本保持一致(1.7.20):
plugins { id 'com.android.application' version '7.4.0' apply false id 'com.android.library' version '7.4.0' apply false // 修改为1.7.20,匹配stdlib-jdk7/jdk8版本 id 'org.jetbrains.kotlin.android' version '1.7.20' apply false id 'com.google.dagger.hilt.android' version '2.44' apply false }
2. 强制统一Kotlin标准库版本
在应用级build.gradle的dependencies块中添加依赖约束,强制所有依赖引入的Kotlin标准库使用统一版本:
dependencies { // 原有依赖保持不变,添加以下约束 constraints { implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.7.20' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20' } // 你的其他依赖... }
3. 清理并重新构建项目
执行以下操作确保修改生效:
- 点击Android Studio工具栏的
File > Sync Project with Gradle Files - 执行
Build > Clean Project - 执行
Build > Rebuild Project
可选优化
应用级Gradle中存在重复的插件应用声明,可删除冗余代码:
// 移除以下重复的apply语句 // apply plugin: 'kotlin-kapt' // apply plugin: 'com.google.gms.google-services'
内容的提问来源于stack exchange,提问作者Shameer taggar

