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

Posted

技术标签:

【中文标题】kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7【英文标题】:kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 instead 【发布时间】:2018-10-24 23:00:46 【问题描述】:

昨天我更新了 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

根据建议更改,然后我收到以下错误

意外输入:ImmutableJarInputname=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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

为什么不 org.jetbrains.kotlin:kotlin-stdlib-jdk8 你拯救了我的一周。谢谢! @IgorGanapolsky 您想回答您的评论吗?提前致谢【参考方案2】:

重要更新

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

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

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

如果(kotlin_version == '1.2.x')(使用jdk而不是jre

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

或签入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

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

else if(项目结构中未设置 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。 else if (kotlin_version == '1.1.x') (使用 jre 而不是 jdk)

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

更新 Kotlin 版本?

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

更新 Kotlin 版本

【讨论】:

我正在使用 jdk8 和最新的 kotlin 版本,即。 1.3.11 但警告仍然显示.. jre7 已弃用.. P.S 我的 android studio 版本是3.3.0 @SantanuSur 我不确定。也许,检查您的任何依赖项是否正在使用该版本? 是的,我正在使用一些开源库..可能是其中之一 @SantanuSur 你可以检查你的图书馆是否有一些更新。【参考方案3】:

某些东西正在传递地导入这些库。运行 Gradle 任务 dependencies 以找出原因。

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

如果依赖项没有更新,则无能为力

【讨论】:

【参考方案4】:

看完Kotlin Gradle Script话题 我发现有些问题

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

【讨论】:

【参考方案5】:

您必须交换以下代码:

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

不是 jre > jdk

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

【讨论】:

以上是关于kotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7的主要内容,如果未能解决你的问题,请参考以下文章

在 Symfony 2(.7) 中禁用已弃用的警告

jQuery 的58种事件方法你都用过了吗

sizeWithFont ios 7.0 已弃用 [重复]

PHP 7.2:每个都已弃用。如何转换这些例子? [复制]

php 7.2 each() 函数已弃用[重复]

在iOS 7中替换已弃用的sizeWithFont: