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

Kotlin标准库版本冲突引发依赖解析错误求助

解决Kotlin标准库多版本冲突导致的重复类错误

你遇到的核心问题是Kotlin标准库版本不一致引发的类重复定义冲突:项目中同时存在kotlin-stdlib:1.8.10和旧版本的kotlin-stdlib-jdk7:1.7.20/kotlin-stdlib-jdk8:1.7.20。从Kotlin 1.8开始,kotlin-stdlib已经整合了JDK7/JDK8的扩展功能,单独引入旧版本的jdk7/jdk8子模块会和新版本stdlib产生类重叠。

以下是三种可行的解决方法:

方法1:统一Kotlin版本并移除冗余依赖

  1. 在项目根目录的build.gradle(或build.gradle.kts)中统一配置Kotlin版本:
    buildscript {
        ext {
            kotlin_version = "1.8.10"
        }
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
    Kotlin DSL写法:
    plugins {
        kotlin("jvm") version "1.8.10"
        // 其他项目插件...
    }
    
  2. 检查所有模块的依赖配置,移除单独引入的kotlin-stdlib-jdk7和kotlin-stdlib-jdk8,只保留与Kotlin版本一致的stdlib依赖:
    ❌ 错误示例(版本不一致+冗余依赖):
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20"
    }
    
    ✅ 正确示例(统一版本):
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10"
        // 或仅保留基础stdlib:implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"
    }
    

方法2:排除第三方依赖带来的旧版本stdlib

如果是第三方依赖间接引入了旧版本的kotlin-stdlib-jdk7/kotlin-stdlib-jdk8,可以通过依赖排除规则清理冲突:

dependencies {
    implementation("com.example:third-party-lib:1.0.0") {
        exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib-jdk7"
        exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib-jdk8"
    }
}

Kotlin DSL写法:

dependencies {
    implementation("com.example:third-party-lib:1.0.0") {
        exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
        exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
    }
}

方法3:强制所有Kotlin依赖使用指定版本

通过Gradle的版本强制策略,确保所有Kotlin相关依赖统一为目标版本:
在根目录build.gradle中添加:

allprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10"
        }
    }
}

Kotlin DSL写法:

allprojects {
    configurations.all {
        resolutionStrategy.force(
            "org.jetbrains.kotlin:kotlin-stdlib:1.8.10",
            "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10",
            "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10"
        )
    }
}

验证冲突是否解决

执行以下命令查看debug编译路径下的Kotlin依赖版本,确认所有条目均为1.8.10:

./gradlew dependencies --configuration debugCompileClasspath | grep kotlin-stdlib

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:20:01