将 Android Gradle 插件升级到 8.0.0“jvm 目标兼容性应设置为相同的 Java 版本”

Sma*_*mer 8 android gradle android-studio android-gradle-plugin

我正在尝试使用最新的稳定 Flamingo 版本将我的 Android Gradle 插件升级到 8.0。

但是,在运行 AGP 升级助手并尝试运行构建后,我遇到了这个问题。

Caused by: org.gradle.api.GradleException: 'compileDebugJavaWithJavac' task (current target is 1.8) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

Run Code Online (Sandbox Code Playgroud)

我已经更新了 build.gradle 文件中的这些行

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
Run Code Online (Sandbox Code Playgroud)

但是,我仍然遇到这个问题。

这个问题是什么意思以及如何解决它?

Sid*_*kya 5

此代码片段语法已弃用:

 compileOptions {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
    jvmTarget = "17"
}
Run Code Online (Sandbox Code Playgroud)

使用这个代替:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
}

kotlin {
        jvmToolchain(17)
}
Run Code Online (Sandbox Code Playgroud)

  • 请检查您的答案,您是否将 kts 与 groovy 脚本混淆了? (2认同)

小智 0

似乎“compileDebugJavaWithJavac”任务设置为目标 Java 版本 1.8,而“compileDebugKotlin”任务设置为目标 Java 版本 17。这种不匹配可能会在构建过程中导致问题。您需要确保两个任务的 Java 版本目标兼容性设置为相同的值。您可以尝试build.gradle按如下方式更新文件:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
}
Run Code Online (Sandbox Code Playgroud)

这些可能对你有帮助