Android Studio 中过时的 Kotlin 运行时警告

下载并安装了最新的 Kotlin 插件之后,我收到了来自 Android Studio 的 过时的科特林跑道警告,告诉我:

您在‘ Kotlin-stdlib-1.1.2’库中的 Kotlin 运行时版本是 1.1.2,而插件版本是1.1.2-release-Studio2.3-3。应该更新运行时库以避免兼容性问题。

我试图点击 更新运行时按钮,但收到了另一条消息:

目前可以自动更新适用于 Gradle 项目的图书馆版本 不支持。请手动更新 build.gradle。

如何解决这个问题?

84542 次浏览

您可以在项目级别的 build.gradle文件中更新您的 Kotlin 版本。如果按照通常的方式进行配置,那么应该在顶部附近显示以下内容:

ext.kotlin_version = '1.1.2'

要升级到与您的插件相匹配的版本,只需将这一行更改为:

ext.kotlin_version = '1.1.2-3'

编辑 (回答下面的问题) :

这个错误告诉你你需要升级你的版本,问题是在哪里找到你必须放入 1.1.2-3而不是说,例如,1.1.2-release-Studio2.3-3

找到 Kotlin 最新版本的最好方法是去 Kotlinlang.org寻找“最新版本”。应该就在头版。

如果版本号非常重要,那么要做的另一件事是检查存放版本的存储库。对于 Android,您可能会从 jcenter 获得它,您可以找到 存储库页,它列出了所有可用的版本。

您还可以浏览 jcenter 的原始 maven 存储库,其中的文件实际上是通过 给你托管的,或者在 Mvn 存储库Mavencentral(后者的原始版本 给你)上查找 Kotlin。

将 ext.kotlin _ version 从“1.1.2-4”改为“ ext.kotlin _ version = “1.1.2-5”为我解决了这个问题

我在金丝雀频道的最新 Android Studio 上遇到过这个问题。您可能还需要考虑将 Android Studio 降级到稳定版本。

我在 Android Studio 3.0 RC1上就遇到过这种情况。

它抱怨(在 Android Studio 3.0.1上) ... ... 很可能是因为引用库的依赖关系:

你在“ org.jetbrains.Kotlin: Kotlin-stdlib: 1.1.3@jar”库中的 Kotlin 运行时版本是1.1.3,而插件版本是1.1.51-release-Studio3.0-1。

然后我在模块级别 build.gradle中根据它要求的版本强制进行构建:

configurations.all() {
resolutionStrategy.force 'org.jetbrains.kotlin:kotlin-stdlib:1.1.51'
}

结果就是:

./gradlew app:dependencies | grep kotlin
Download https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.1.51/kotlin-stdlib-1.1.51.pom
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.1.3 -> 1.1.51
...

这个问题出现在你更新从 Android 工作室弹出的 kotlin 插件版本时,但问题是当前版本的 Android 工作室无法动态更改位于 项目级别 Build.gradle文件中的 kotlin gradle 插件。

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.10"
}

如何解决这个问题?

所以你需要手动更改这个版本,你可以找到 给你

(Project: [projectName]) build.gradle文件中找到以下内容: 并用当前版本的 Kotlin 插件替换 x.x.x。 enter image description here

为了检查你的 Kotlin 插件的当前版本:

  1. 转到: Tools-> Kotlin-> Confugue Kotlin Plugin Update

  2. 点击“再次检查”。一秒钟后你就会看到你的 Kotlin 插件的版本。(如果没有更新,你的 Kotlin 插件将会更新。) enter image description here enter image description here

注意: 还要检查您的 (Module: app) build.gradle文件,并确保您不使用:

compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.21"

但是

compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.40'

请注意“ ... Jre7...”-> “ ... JDK7...”的区别。还要用您当前的 Kotlin 插件版本替换“1.2.40”。

我在 Android Studio 和 IDEA 中遇到过几次这样的问题,发现如果你进入你的项目 Gradle 文件,如果你将 kotlin-gradle-plugin的版本设置为 $kotlin_version,那么警告信息会告诉你需要将 ext.kotlin_version设置为哪个版本。

buildscript {
ext.kotlin_version = '1.2.40'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

enter image description here

Kotlin 最新版本:

buildscript {
ext.kotlin_version = '1.2.41'


repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
classpath 'com.google.gms:google-services:1.5.0-beta2'




// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

Kotlin 的最新版本是1.2.41使用这个并同步您的项目。

buildscript {
ext.kotlin_version = '1.2.41'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
buildscript {
ext.kotlin_version = '1.2.50'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

有两件事你可能需要更新:

  1. Kotlin 项目运行时
  2. Kotlin 插件

IvoStoyanov 的答案展示了如何使用 android 工作室菜单来实现这一点。当我得到错误消息并单独尝试这个(更新 kotlin 插件)时,它仍然抱怨 kotlin 运行时。您可以通过在 ext.kotlin _ version 上添加行到项目构建级别(如其他一些答案所示)来逐个项目地更新它。但是你需要知道 kotlin 的运行时版本。或者,你也可以通过菜单做到这一点,正如我在下面展示的,附加的 android 工作室向你展示可用的版本,你可以选择最新的。

step 1

step 2

step 3

step 4

然后,android 工作室将添加适当的行在您的项目构建级别。

有点烦人,但是工作室有时候会这样做。下面的步骤可以解决这个问题。

去吧

设置-> 构建,执行,开发-> 分级-> 使用默认的分级包装器(推荐)

将此更改为“使用本地”并返回“使用默认值”。工作室将询问关闭设置窗口后更新梯度。

搜索这两行代码

Ext.kotlin _ version =’1.3.11’

类路径 “ org.jetbrains.kotlin: kotlin-gradle-plugin: $kotlin _ version”

用实际值替换 $Kotlin _ version(这里是1.3.11)

类路径 “ org.jetbrains.kotlin: kotlin-gradle-plugin: 1.3.11”

在此之后,您的 IDE 将自动向您推荐更新版本

快乐编码:)

在我的 android 工作室从3.0.1升级到3.2.1之后,我也遇到了同样的问题。

buildscript {
ext.kotlin_version = '1.2.51'
repositories {
google()
jcenter()
mavenCentral()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

}

2019年3月8日开始,当前的 kotlin 版本是 '1.3.21'

build.gradle下面

buildscript {
ext.kotlin_version = '1.3.21'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

干杯