Duplicate class kotlin-stblib vs kotlin-stdlib-jdk7/8

2,976 阅读1分钟

kotlin-stdlib

kotlin 1.8.0 基于 JVM 1.8 编译,不再支持 JVM 1.6 和 1.7。后续不用单独在build.gradle 依赖 kotlin-stdlib-jdk7 and kotlin-stdlib-jdk8

If you have explicitly declared kotlin-stdlib-jdk7 and kotlin-stdlib-jdk8 as dependencies in your build scripts, then you should replace them with kotlin-stdlib.

Duplicate class

  • 方法一
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
  • 方法二
    强制把 kotlin-stdlib-jdk7 和 kotlin-stdlib-jdk8 升级到 1.8.0
dependencies {
    constraints {
        add("implementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk7") {
            version {
                require("1.8.0")
            }
        }
        add("implementation", "org.jetbrains.kotlin:kotlin-stdlib-jdk8") {
            version {
                require("1.8.0")
            }
        }
    }
}
  • 方法三
    手动移除 kotlin-stdlib,不推荐
dependencies {
     implementation("com.example:lib:1.0") {
      exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib"
  }
}

参考文档:https://kotlinlang.org/docs/gradle-configure-project.html#other-ways-to-align-versions