“compileDebugJavaWithJavac”任务(当前目标是 1.8)和“compileDebugKotlin”任务(当前目标是 17)

问题描述 投票:0回答:1

我正在 Android Studio 中构建一个 flutter 应用程序,并在尝试构建该应用程序时在安装包后不断收到此错误。 这是完整的错误消息:


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':flutter_image_compress_common:compileDebugKotlin'.
> '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.
  Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain


* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

由于错误表明当前目标是版本1.8,我尝试像这样调整 android/app/build.gradle 文件:

...
kotlin {
    jvmToolchain(17)
}

android {
    namespace 'de.dthinking.app'
    compileSdkVersion 34

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = "17"
    }
  ...
}

执行 ./gradlew --version 有以下输出:

------------------------------------------------------------
Gradle 8.0
------------------------------------------------------------

Build time:   2023-02-13 13:15:21 UTC
Revision:     62ab9b7c7f884426cf79fbedcf07658b2dbe9e97

Kotlin:       1.8.10
Groovy:       3.0.13
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          17 (Oracle Corporation 17+35-LTS-2724)
OS:           Windows 10 10.0 amd64

其他解决方案调整了gradle设置,但在我的情况下没有显示: android studio overlay

我通过调整 android/build.gradle 让它工作:

allprojects {
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions.jvmTarget = "1.8"
    }

    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs).configureEach {
        kotlinOptions.jvmTarget = "1.8"
    }
}

当我将 jvmTarget 设置为“17”时,这不起作用,从一开始就出现相同的错误。 但我想使用版本 17 而不是 1.8。 我真的很感谢解释为什么我对 android/app/build.gradle 的更改实际上没有任何作用。还有其他文件需要调整吗?

flutter gradle jvm
1个回答
0
投票

我遇到了同样的问题,以下方法对我有用:

app/build.gradle

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlin {
        jvmToolchain(17)
    }
    ...
}

无需在

android/build.gradle
中进行调整。 希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.