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

Kotlin依赖冲突引发重复类错误,求解决方案

解决Kotlin stdlib重复类依赖冲突问题

核心解决步骤

1. 强制统一Kotlin版本

在项目级build.gradle中全局指定Kotlin版本,确保所有模块和第三方依赖都使用同一版本的stdlib:

// 项目级 build.gradle
buildscript {
    ext {
        kotlin_version = "1.8.10" // 统一为目标版本
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // 其他classpath依赖保持不变
    }
}

allprojects {
    configurations.all {
        resolutionStrategy {
            // 强制所有依赖使用指定版本的Kotlin stdlib系列包
            force "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
        }
    }
}

同时在App级build.gradle中直接引用统一版本的stdlib:

// App级 build.gradle
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:$rootProject.ext.kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$rootProject.ext.kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$rootProject.ext.kotlin_version"
    // 其他业务依赖保持不变
}

2. 排查并排除隐藏的旧版本依赖

执行gradle命令查看完整依赖树,定位拉取旧版本stdlib的第三方依赖:

./gradlew app:dependencies

搜索kotlin-stdlib-jdk7或kotlin-stdlib-jdk8,找到对应依赖后,在App级build.gradle中排除旧版本:

// 示例:排除某第三方依赖中的旧版本stdlib
implementation 'com.example.somelibrary:1.0.0' {
    exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
    exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
}

3. 调整Jetifier配置

虽然已开启Jetifier,但它可能会重复处理Kotlin stdlib包,导致冲突。在gradle.properties中添加忽略配置:

android.enableJetifier=true
android.jetifier.ignorelist=kotlin-stdlib,kotlin-stdlib-jdk7,kotlin-stdlib-jdk8

4. 清理缓存并重建

执行以下操作彻底清理缓存,避免旧缓存干扰:

./gradlew clean

同时删除项目根目录下的.gradle文件夹,以及用户目录(如~/.gradle)中的缓存文件,之后重新同步项目并构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:14:49