kotlin-stdlib-jre7已弃用.请改用kotlin-stdlib-jdk7

Gan*_*one 44 android kotlin

昨天我更新了Android Studio版本和Kotlin插件版本.

Android Studio版本:3.1.2

Kotlin版本:1.2.41

当我使用这个配置创建一个Android项目时,我得到了Kotlin Compiler的警告

w:/home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.2.41/9e7a6f582de73d9cdc6c56ef4e23604a0ee55768/kotlin-stdlib-jre7-1.2.41.jar: kotlin-stdlib-jre7已弃用.请改用kotlin-stdlib-jdk7

根据建议改变,然后我得到跟随错误

意外输入:ImmutableJarInput {name = org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.41,file =/home/ganeshtikone/Workspace/May-2018/fhs/app/build/intermediates/transforms/desugar/stage/debug/45.jar,contentTypes = CLASSES,scopes = EXTERNAL_LIBRARIES,status = REMOVED}

Ama*_*ena 80

转到工具> Kotlin>配置Kotlin插件更新并检查更新然后在您的应用程序gradle文件中用jdk替换jre

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

  • 为什么不**org.jetbrains.kotlin:kotlin-stdlib-jdk8**? (6认同)

Khe*_*raj 23

重要更新

在设置config之前必须检查JDK版本

Kotlin gradle配置页面包含有关此内容的详细信息.

首先在gradle文件中检查你的kotlin版本.

if(kotlin_version == '1.2.x')(使用jdkNOT jre)

首先在文件>项目结构中检查您的jdk版本.

SC

或者登记入住 build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)

if(jdk_version == 1.8)

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

if(jdk_version == 1.7)

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

if(jdk_version <1.7)

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

else if(项目结构中没有设置jdk版本)

if(Android_Studio_Version < 2.2.1){
   your_jdk_version = 1.7;
}
else {
   your_jdk_version = 1.8;
}
Run Code Online (Sandbox Code Playgroud)

因为Android Studio与2.2.1版本捆绑在一起jdk 1.8 .

2. else if(kotlin_version == '1.1.x')(使用jre NOT jdk)

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

更新Kotlin版本?

您可以从Tools> Kotlin> Configure Kotlin Updates更新Kotlin版本

  • 我正在使用 `jdk8` 和最新的 kotlin 版本,即。`1.3.11` 但仍然显示警告.. jre7 已弃用.. PS 我的 android studio 版本是 `3.3.0` (2认同)

Nik*_*vić 8

有些东西正在传递这些库.运行Gradle任务dependencies以找出什么.

在我的情况下,它是io.vertx:vertx-lang-kotlin-coroutines:3.5.1.

如果没有针对依赖项的更新,则无法对此进行更新


Gan*_*one 5

在阅读Kotlin Gradle脚本主题之后,我发现一些问题

如果您以JDK 7或JDK 8为目标,则可以使用Kotlin标准库的扩展版本,该库包含新JDK版本中添加的API的其他扩展功能。代替kotlin-stdlib,请使用以下依赖项之一:

编译“ org.jetbrains.kotlin:kotlin-stdlib-jdk7”
编译“ org.jetbrains.kotlin:kotlin-stdlib-jdk8”

我在项目中使用了实现“ org.jetbrains.kotlin:kotlin-stdlib-jdk8”。我认为这是因为在build.graddle中设置了compileOptions

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
Run Code Online (Sandbox Code Playgroud)