164

下载并安装最新的 Kotlin 插件后,我收到了来自 Android Studio 的过时 Kotlin Runtime警告,告诉我:

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

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

目前不支持 Gradle 项目的自动库版本更新。请手动更新您的 build.gradle。

如何解决这个问题?

4

15 回答 15

145

您可以在项目级别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 存储库,或者在mvnrepositorymavencentral (此处为后者的原始版本)上查找 Kotlin。

于 2017-05-12T04:42:58.163 回答
145

在您的(Project: [projectName]) build.gradle文件中找到: ext.kotlin_version = 'x.x.x'并将 xxx 替换为您的 Kotlin 插件的当前版本。 在此处输入图像描述

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

  1. 转到:工具 -> Kotlin -> 配置 Kotlin 插件更新

  2. 单击“再次检查”。一秒钟后,您将看到 Kotlin 插件的版本。(如果不是最新的,您的 Kotlin 插件将被更新。) 在此处输入图像描述 在此处输入图像描述

注意:还要检查您的(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 ...”。还将“1.2.40”替换为您当前的 Kotlin 插件版本。

于 2018-01-25T15:30:19.137 回答
11

它抱怨(在 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
 ...
于 2017-12-28T00:48:23.067 回答
6

您可能需要更新两部分:

  1. 项目的 kotlin 运行时
  2. 科特林插件

Ivo Stoyanov 的回答显示了如何使用 android studio 菜单执行此操作。当我收到错误消息并单独尝试(更新 kotlin 插件)时,它仍然抱怨 kotlin 运行时。正如其他一些答案所表明的那样,您可以通过将 ext.kotlin_version 上的行添加到项目构建 gradle 来逐个项目地更新它。但是你需要知道 kotlin 运行时版本。或者,您也可以通过菜单进行操作,如下所示,android studio 会向您显示可用版本,您可以选择最新版本。

步骤1

第2步

第 3 步

第4步

然后 android studio 将在你的项目 build gradle 中添加适当的行。

于 2018-07-05T07:29:17.887 回答
3

将您的 ext.kotlin_version 从 '1.1.2-4' 更改为 ext.kotlin_version = '1.1.2-5' 为我解决了这个问题

于 2017-06-15T18:38:24.720 回答
2

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
}
}
于 2018-06-08T04:04:59.070 回答
2

截至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
}

干杯

于 2019-03-08T05:00:55.960 回答
1
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
    }
}
于 2018-06-14T06:53:51.297 回答
1

当您更新从 android studio 弹出的 kotlin 插件版本时会出现此问题,但问题是当前版本的 Android studio 无法动态更改位于项目级别 Build.gradle文件中的 kotlin gradle 插件。

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

如何解决这个问题?

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

于 2018-01-19T05:15:42.573 回答
1

我在 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
}
}

在此处输入图像描述

于 2018-04-27T17:28:13.237 回答
1

搜索这两行代码

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 将自动建议您更新版本

快乐编码:)

于 2019-01-20T10:11:29.007 回答
0

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

设置 -> 构建、执行、开发 -> Gradle -> 使用默认的 gradle 包装器(推荐)

将此更改为使用本地并返回使用默认值。Studio 会在关闭设置窗口后询问是否更新 gradle。

于 2018-07-15T09:38:36.893 回答
0

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
    }
}
于 2018-05-23T07:22:18.233 回答
0

将我的 android studio 从 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-01-22T07:28:23.387 回答
-1

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

它发生在我的 Android Studio 3.0 RC1 上。

于 2017-10-18T15:07:18.017 回答