You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio创建Java版导航抽屉Activity遇:app:checkDebugDuplicateClasses错误

解决Android Studio导航抽屉Activity模板的kotlin-stdlib重复类错误

问题现象

使用Java语言创建导航抽屉Activity模板后,构建项目时触发app:checkDebugDuplicateClasses错误,提示不同版本的kotlin-stdlib模块存在重复类(如kotlin.collections.jdk8.CollectionsJDK8Kt),但项目中未主动使用Kotlin语言。空Activity和基础Activity模板可正常构建,且未修改模板默认内容。

原因分析

导航抽屉Activity模板默认引入了Material Components、AndroidX Navigation等组件库,这些库内部依赖Kotlin语言实现,会间接引入不同版本的Kotlin标准库。当不同库引入的Kotlin标准库版本不一致时,就会出现类重复冲突。

解决方案

1. 统一Kotlin标准库版本(推荐)

在项目根目录的build.gradle(Project级)中指定统一的Kotlin版本,强制所有依赖使用该版本:

buildscript {
    ext {
        kotlin_version = "1.8.10" // 与报错中的高版本保持一致
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

或通过settings.gradle的版本目录管理统一版本:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
    versionCatalogs {
        libs {
            version("kotlin", "1.8.10")
            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")
        }
    }
}

2. 排除冲突的低版本Kotlin依赖

在app模块的build.gradle中,对引入Kotlin依赖的库(如Material、Navigation)排除低版本的stdlib:

dependencies {
    // 模板默认引入的依赖
    implementation 'com.google.android.material:material:1.9.0'
    implementation 'androidx.navigation:navigation-fragment:2.5.3'
    implementation 'androidx.navigation:navigation-ui:2.5.3'

    // 排除低版本Kotlin标准库依赖
    implementation('com.google.android.material:material:1.9.0') {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    }
    implementation('androidx.navigation:navigation-fragment:2.5.3') {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    }
    implementation('androidx.navigation:navigation-ui:2.5.3') {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    }
}

3. 验证依赖版本一致性

执行以下命令查看项目依赖树,确认所有kotlin-stdlib相关依赖版本统一:

# macOS/Linux
./gradlew app:dependencies

# Windows
gradlew.bat app:dependencies

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 05:47:34