如何替换 java-library 和 kotlin 模块中已弃用的 kotlinOptions?

How to replace the deprecated kotlinOptions in a java-library & kotlin module?

提问人:JJD 提问时间:10/26/2023 最后编辑:JJD 更新时间:10/27/2023 访问量:203

问:

在我的 Android 应用程序项目中,我为库模块使用以下 Gradle (Groovy) 配置

// build.gradle

apply plugin: "java-library"
apply plugin: "kotlin"

dependencies {
    api Libs.engelsystem
    implementation(Libs.retrofit) {
        exclude group: "com.squareup.okio", module: "okio"
    }

    testImplementation Libs.junit
    testImplementation Libs.kotlinCoroutinesTest
    testImplementation Libs.mockitoKotlin
    testImplementation Libs.okhttpMockWebServer
    testImplementation Libs.retrofitConverterMoshi
    testImplementation Libs.truth
}

sourceCompatibility = Config.compatibleJavaVersion
targetCompatibility = Config.compatibleJavaVersion

compileKotlin {
    kotlinOptions {
        jvmTarget = Config.compatibleJavaVersion // is set to JavaVersion.VERSION_11
        freeCompilerArgs += [
                "-opt-in=kotlin.RequiresOptIn"
        ]
    }
}

Android Studio Giraffe / Lint 通知我已弃用kotlinOptions

Screenshot of the quick tip

没有快速的解决方案可以申请。如何正确替换符号?这种库模块似乎有不同的语法。模块和模块中都没有弃用警告。如果这是一个重要的区别,两者都使用插件。com.android.librarycom.android.applicationkotlin-android

可能的答案

...将它们视为非官方弃用的......

来源: https://youtrack.jetbrains.com/issue/KT-27301/Expose-compiler-flags-via-Gradle-lazy-properties#focus=Comments-27-6565858.0-0

相关

Android Kotlin Groovy 已弃用 java-module

评论

0赞 Jay 10/26/2023
我只是克隆了 git 存储库并构建了整个项目。我应该承认,我没有收到您在模块 engelsystem 的 build.gradle 文件中声明的任何此类弃用警告。虽然,我不得不将 jvmTarget 值更改为“11”,而不是因为否则它无法编译此模块:engelsystem/src/test/kotlin/info/metadude/android/eventfahrplan/engelsystem/EngelsystemNetworkRepositoryTest.kt:81:32 无法将使用 JVM 目标 11 构建的内联字节码内联到使用 JVM 目标 1.8 构建的字节码中。请指定正确的“-jvm-target”选项Config.compatibleJavaVersion
0赞 ΓDΛ 10/26/2023
同样的方式。它不会给出错误。
0赞 JJD 10/26/2023
@Jay我正在使用 Android Studio Iguana |2023.2.1. 金丝雀 10.Lint 可能需要一些时间。一旦我让 Gradle 同步,它就会为我显示警告。Wrt. - 应该没问题 - 只有 Android Studio 与文件夹不相处 - 因此那里有警告。你结账了吗?jvmTargetbuildSrcmaster
0赞 JJD 10/26/2023
@Jay更正:在 IDE 设置中选择 JDK 11 时,我没有收到错误。尽管选择了JDK 11,但我还是收到了所描述的错误。我可能必须重新发布 Engelsystem 库的工件才能解决此问题。仍在检查中。- 弃用警告:它在两个 IDE 版本中都可见。jvmTargetAndroid Studio Giraffe | 2022.3.1 Patch 1Android Studio Iguana | 2023.2.1. Canary 10
0赞 JJD 10/26/2023
Android Studio Giraffe | 2022.3.1 Patch 2对我来说也很好。

答: 暂无答案