【问题标题】:kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 insteadkotlin-stdlib-jre7 已弃用。请改用 kotlin-stdlib-jdk7
【发布时间】: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

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

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

【问题讨论】:

    标签: android kotlin


    【解决方案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"
        

        【讨论】:

          猜你喜欢
          • 2018-02-07
          • 2017-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-30
          • 2020-08-29
          • 2021-03-18
          相关资源
          最近更新 更多