首页 文章

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

提问于
浏览
31

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

  • 4

    转到 Tools > Kotlin > Configure Kotlin Plugin Updates 并检查更新,然后在您的应用程序gradle文件中将 jre 替换为 jdk

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

    重要更新

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

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

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

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

    首先检查 File > Project Structure 中的jdk版本 .

    sc

    或者入住 build.gradle

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

    if (jdk_version == 1.8)

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

    if (jdk_version == 1.7)

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

    if (jdk_version is < 1.7)

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

    else if(NO jdk version is set in Project Structure)

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

    Because Android Studio is bundled with jdk 1.8 since 2.2.1 version.

    1. else if(kotlin_version =='1.1.x')(使用jre NOT jdk)
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // or jre8
    

    更新Kotlin版本?

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

  • 9

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

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

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

  • 0

    阅读Kotlin Gradle Script主题后,我发现有些ponits

    如果您的目标是JDK 7或JDK 8,则可以使用Kotlin标准库的扩展版本,其中包含在新JDK版本中添加的API的其他扩展功能 . 而不是kotlin-stdlib,使用以下依赖项之一:compile“org.jetbrains.kotlin:kotlin-stdlib-jdk7”compile“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
    }
    
  • 6

    您必须交换以下代码:

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

    不是jre> jdk

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

相关问题