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的主要内容,如果未能解决你的问题,请参考以下文章