构建项目遇重复类错误:checkQualDebugDuplicateClasses失败
解决 Kotlin 重复类错误问题
错误原因
你遇到的 Duplicate class 错误是因为项目中同时存在不同版本的 Kotlin 标准库依赖:
- 自动引入的
kotlin-stdlib:1.8.10 - 旧版本的
kotlin-stdlib-jdk8:1.6.21
而你配置的 Kotlin 版本是 1.7.21,版本不一致导致类定义重复冲突。
解决方法
1. 统一所有 Kotlin 依赖版本
确保项目中所有 Kotlin 相关插件和依赖都使用指定的 1.7.21 版本:
项目根目录 build.gradle:
buildscript { ext { kotlin_version = '1.7.21' } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.android.tools.build:gradle:7.3.1' } }
模块 build.gradle:
dependencies { // 使用统一版本的标准库 implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // Kotlin 1.6+ 版本中,stdlib 已包含 JDK8 扩展,无需单独引入 stdlib-jdk8 // 若必须保留,需同步版本:implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" }
2. 强制依赖版本统一
若第三方依赖自动引入了其他版本的 Kotlin 库,通过 Gradle 解析策略强制统一版本:
项目根目录 build.gradle:
allprojects { configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } } }
3. 排查并排除冲突依赖
运行以下命令查看依赖树,定位引入冲突版本的第三方依赖:
./gradlew your-module-name:dependencies
(替换 your-module-name 为你的模块名称,如 app)
找到冲突依赖后,通过 exclude 移除其自带的 Kotlin 库:
dependencies { implementation('com.example:problem-library:1.0') { exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8' } }
完成上述操作后,清理并重新构建项目即可解决重复类问题。
内容的提问来源于stack exchange,提问作者arun
相关产品推荐
相关产品推荐

