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

时间:2018-05-15 07:30:46

标签: 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}

5 个答案:

答案 0 :(得分:73)

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

{{1}}

答案 1 :(得分:18)

重要更新

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

Kotlin gradle config页上有关于此的详细信息。

首先在gradle文件中检查您的kotlin版本。

  

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

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

sc

或签入build.gradle

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

如果(jdk_version == 1.8)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

如果(jdk_version == 1.7)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

如果(jdk_version为<1.7)

implementation"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

否则(在“项目结构”中未设置jdk版本)

if(Android_Studio_Version < 2.2.1){
   your_jdk_version = 1.7;
}
else {
   your_jdk_version = 1.8;
}

因为Android Studio与jdk 1.8 since 2.2.1 version捆绑在一起。

  

2。否则,如果(kotlin_version == '1.1.x')(使用jre NOT jdk)

implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // or jre8

要更新Kotlin版本吗?

您可以从工具> Kotlin>配置Kotlin更新

来更新Kotlin版本。

答案 2 :(得分:6)

有些东西正在传递这些库。运行Gradle任务dependencies以确定是什么。

就我而言,它是io.vertx:vertx-lang-kotlin-coroutines:3.5.1

如果没有依赖项的更新,那么你可以做的事情就不多了

答案 3 :(得分:5)

阅读Kotlin Gradle Script主题后 我发现了一些ponits

  

如果您的目标是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
}

答案 4 :(得分:0)

您必须交换以下代码:

     implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

不是jre> jdk

     implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"