在Android Studio中构建时如何解决错误"无法解析:org.jetbrains.kotlin:kotlin-stdlib-jre7 ..."

Goo*_*gle 61 kotlin

我通过检查Android Studio 3中的"include kotlin"框创建了一个新项目,开箱即用我在编译时遇到错误

__CODE__

我确保所有插件都是最新的,并且Android SDK已正确安装.

有谁知道如何解决这个错误?

Zoe*_*Zoe 130

kotlin-stdlib-jre[7/8]不久之前已被弃用,并已被删除.该特定依赖项的最新版本是1.2.71.可以在此处找到弃用通知.使用现有版本的stdlib也会在(至少)Android Studio和IntelliJ中产生警告.

kotlin-stdlib-jdk7改用.它与kotlin-stdlib-jre7(新的除外)相同,但它被重新命名为kotlin-stdlib-jdk.kotlin-stdlib-jre现在不再作为单独的依赖项维护.

IntelliJ和Android Studio都使用生成新项目kotlin-stdlib-jre7; 这是一个错误.他们可能没有更新发电机.因此,您必须手动将依赖项替换为工作依赖项,直到它们解决此问题.

然而,从Kotlin 1.3.0开始,这些是新的有效依赖:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)

哪里$kotlinVersion是包含版本的变量,或者是硬编码版本(即1.3.0)


或者,您可以使用"plain"stdlib(kotlin-stdlib)而不是特定于Java的版本.但你必须改变你的依赖,所以我建议你去kotlin-stdlib-jdk7

其他构建系统的注意事项

同样的实际解决方案也适用于其他构建系统,但代码不同.由于有很多构建系统,我不打算包括所有这些系统,但重点是将工件更改kotlin-stdlib-jdk8kotlin-stdlib-jre[num](当然没有括号).

  • 等待,您在哪里更改了那行代码,甚至添加了它? (2认同)
  • @jonney`build.gradle`。如果您使用其他构建系统,则需要找到该系统的适当代码。关键是将“ kotlin-stdlib-jre7”更改为“ kotlin-stdlib-jdk7”(或8),除了增加版本之外,还使用了该版本。 (2认同)
  • 太酷了,谢谢,我通过在gradle依赖项部分添加了它来修复它 (2认同)

Sou*_*Das 21

从build.gradle中删除以下行:

implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)

在build.gradle中添加以下行:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)

在项目级别更新版本build.gradle:kotlin version ='1.3.0'