Gradle构建报错::app:checkDebugDuplicateClasses任务执行失败
Gradle任务
:app:checkDebugDuplicateClasses执行失败的解决办法 问题描述
执行Gradle任务
:app:checkDebugDuplicateClasses失败,执行com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable时抛出异常,检测到多组重复类:
- jetified-kotlin-stdlib-1.8.0(
org.jetbrains.kotlin:kotlin-stdlib:1.8.0)与jetified-kotlin-stdlib-jdk8-1.7.20(org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20)中存在重复类kotlin.collections.jdk8.CollectionsJDK8Kt- jetified-kotlin-stdlib-1.8.0与jetified-kotlin-stdlib-jdk7-1.7.21(
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.21)中存在重复类kotlin.internal.jdk7.JDK7PlatformImplementations及其内部类kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion
核心原因
Kotlin标准库版本不统一:kotlin-stdlib使用1.8.0版本,但kotlin-stdlib-jdk7/kotlin-stdlib-jdk8仍停留在1.7.x版本,导致类文件重复冲突。
解决步骤
统一Kotlin标准库版本
在项目根目录的build.gradle(Groovy语法)中统一指定版本:buildscript { ext { kotlin_version = "1.8.0" } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }若使用版本Catalog管理(
settings.gradle):dependencyResolutionManagement { versionCatalogs { libs { version("kotlin", "1.8.0") library("kotlin-stdlib", "org.jetbrains.kotlin", "kotlin-stdlib").versionRef("kotlin") library("kotlin-stdlib-jdk7", "org.jetbrains.kotlin", "kotlin-stdlib-jdk7").versionRef("kotlin") library("kotlin-stdlib-jdk8", "org.jetbrains.kotlin", "kotlin-stdlib-jdk8").versionRef("kotlin") library("kotlin-gradle-plugin", "org.jetbrains.kotlin", "kotlin-gradle-plugin").versionRef("kotlin") } } }同步模块依赖引用
在app模块的build.gradle中,确保所有Kotlin标准库依赖使用统一版本:// 版本Catalog方式 dependencies { implementation libs.kotlin.stdlib implementation libs.kotlin.stdlib.jdk7 implementation libs.kotlin.stdlib.jdk8 // 其他依赖... } // 直接指定版本方式 dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" }清理缓存并重新构建
执行以下命令清理缓存后重新构建项目:./gradlew clean ./gradlew assembleDebug
内容的提问来源于stack exchange,提问作者Sumit Ojha
相关产品推荐
相关产品推荐

