下载并安装了最新的Kotlin插件后,我从Android Studio发出警告,告诉我:
'kotlin-stdlib-1.1.2'库中的Kotlin运行时版本为1.1.2,而插件版本为1.1.2-release-Studio2.3-3 . 应更新运行时库以避免兼容性问题 .
我尝试单击“更新运行时”按钮,但获取另一条消息:
目前不支持Gradle项目的自动库版本更新 . 请手动更新build.gradle .
如何解决这个问题?
您可以在项目级别 build.gradle 文件中更新Kotlin版本 . 如果您按常规方式配置它,则应在顶部附近包含以下行:
build.gradle
ext.kotlin_version = '1.1.2'
要升级到与插件匹配的版本,只需将此行更改为:
ext.kotlin_version = '1.1.2-3'
Edit (回答以下问题):
该错误告诉您需要升级您的版本,问题是在哪里找出您必须放入 1.1.2-3 而不是说,例如 1.1.2-release-Studio2.3-3 .
1.1.2-3
1.1.2-release-Studio2.3-3
如果版本号非常简单,那么最好的办法是检查托管版本的存储库 . 在Android的情况下,您可能会从jcenter获取它,您可以找到repository page,其中列出了所有可用的版本 .
您还可以通过here浏览实际托管文件的jcenter的原始maven存储库,或者在mvnrepository或mavencentral(后者的原始版本here)上查找Kotlin .
在您的 (Project: [projectName]) build.gradle 文件中找到: ext.kotlin_version = 'x.x.x' 并将x.x.x替换为您当前版本的Kotlin插件 .
(Project: [projectName])
ext.kotlin_version = 'x.x.x'
为了检查哪个是您的Kotlin插件的当前版本:
转到:工具 - > Kotlin - > Confugure Kotlin插件更新
单击"Check for updates now" . 一秒钟后,您将看到Kotlin插件的版本 . (如果不是最新版本,您的Kotlin插件将会更新 . )
N.B.: 同时检查您的 (Module: app) build.gradle 文件并确保您不使用:
(Module: app)
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.21"
但
compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.40'
使用您当前的Kotlin插件版本注意差异“... jre7 ... " -> " ... jdk7 ... ". Also replace " 1.2.40” .
它抱怨(在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 ...
将你的ext.kotlin_version从'1.1.2-4'改为ext.kotlin_version ='1.1.2-5'为我解决了这个问题
最新版本的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 } }
您可能需要更新两件:
项目的
kotlin运行时
kotlin插件
Ivo Stoyanov的回答显示了如何使用android studio菜单执行此操作 . 当我收到错误消息并单独尝试这个(更新kotlin插件)时,它仍然抱怨kotlin运行时 . 您可以逐个项目地更新它,方法是将ext.kotlin_version上的行添加到项目构建gradle中,正如其他一些答案所示 . 但是你需要知道kotlin运行时版本 . 或者,您也可以通过菜单进行操作,如下所示,以及android studio为您显示可用版本的奖励,您可以选择最新版本 .
然后android studio将在项目构建gradle中添加相应的行 .
当您更新从android studio弹出的kotlin插件版本时出现此问题,但问题是当前版本的Android studio无法动态更改位于 project level Build.gradle 文件中的kotlin gradle插件 .
dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.10" }
所以你需要手动更改这个版本,你可以找到Here
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 } }
我在Android Studio和IDEA中遇到过这个问题几次,发现如果你进入你的项目Gradle文件和你的依赖项,如果你将 kotlin-gradle-plugin 的版本设置为 $kotlin_version 那么警告信息会告诉你你的版本是什么需要设置 ext.kotlin_version .
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 } }
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 } }
有点恼人,但工作室有点像它 . 以下步骤可以解决问题 .
去
Settings -> Build, Execution, Development -> Gradle -> Use default gradle wrapper(recommended)
将此更改为使用本地和返回使用默认值 . 关闭设置窗口后,Studio将询问有关更新gradle的信息 .
我在Canary Channels 的最新Android Studio上遇到过这个问题 . 您可能还想考虑将Android Studio降级为稳定版本 .
它发生在Android Studio 3.0 RC1上 .
12 回答
您可以在项目级别
build.gradle
文件中更新Kotlin版本 . 如果您按常规方式配置它,则应在顶部附近包含以下行:要升级到与插件匹配的版本,只需将此行更改为:
Edit (回答以下问题):
该错误告诉您需要升级您的版本,问题是在哪里找出您必须放入
1.1.2-3
而不是说,例如1.1.2-release-Studio2.3-3
.如果版本号非常简单,那么最好的办法是检查托管版本的存储库 . 在Android的情况下,您可能会从jcenter获取它,您可以找到repository page,其中列出了所有可用的版本 .
您还可以通过here浏览实际托管文件的jcenter的原始maven存储库,或者在mvnrepository或mavencentral(后者的原始版本here)上查找Kotlin .
在您的
(Project: [projectName])
build.gradle
文件中找到:ext.kotlin_version = 'x.x.x'
并将x.x.x替换为您当前版本的Kotlin插件 .为了检查哪个是您的Kotlin插件的当前版本:
转到:工具 - > Kotlin - > Confugure Kotlin插件更新
单击"Check for updates now" . 一秒钟后,您将看到Kotlin插件的版本 . (如果不是最新版本,您的Kotlin插件将会更新 . )
N.B.: 同时检查您的
(Module: app)
build.gradle
文件并确保您不使用:但
使用您当前的Kotlin插件版本注意差异“... jre7 ... " -> " ... jdk7 ... ". Also replace " 1.2.40” .
它抱怨(在Android Studio 3.0.1上)...很可能是因为引用库的依赖:
然后我在模块级别
build.gradle
强制构建它所需的版本:结果是:
将你的ext.kotlin_version从'1.1.2-4'改为ext.kotlin_version ='1.1.2-5'为我解决了这个问题
您可能需要更新两件:
项目的
kotlin运行时
kotlin插件
Ivo Stoyanov的回答显示了如何使用android studio菜单执行此操作 . 当我收到错误消息并单独尝试这个(更新kotlin插件)时,它仍然抱怨kotlin运行时 . 您可以逐个项目地更新它,方法是将ext.kotlin_version上的行添加到项目构建gradle中,正如其他一些答案所示 . 但是你需要知道kotlin运行时版本 . 或者,您也可以通过菜单进行操作,如下所示,以及android studio为您显示可用版本的奖励,您可以选择最新版本 .
然后android studio将在项目构建gradle中添加相应的行 .
当您更新从android studio弹出的kotlin插件版本时出现此问题,但问题是当前版本的Android studio无法动态更改位于 project level Build.gradle 文件中的kotlin gradle插件 .
所以你需要手动更改这个版本,你可以找到Here
我在Android Studio和IDEA中遇到过这个问题几次,发现如果你进入你的项目Gradle文件和你的依赖项,如果你将
kotlin-gradle-plugin
的版本设置为$kotlin_version
那么警告信息会告诉你你的版本是什么需要设置ext.kotlin_version
.Kotlin最新版本:
有点恼人,但工作室有点像它 . 以下步骤可以解决问题 .
去
Settings -> Build, Execution, Development -> Gradle -> Use default gradle wrapper(recommended)
将此更改为使用本地和返回使用默认值 . 关闭设置窗口后,Studio将询问有关更新gradle的信息 .
我在Canary Channels 的最新Android Studio上遇到过这个问题 . 您可能还想考虑将Android Studio降级为稳定版本 .
它发生在Android Studio 3.0 RC1上 .