我正在 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/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 的更改实际上没有任何作用。还有其他文件需要调整吗?
我遇到了同样的问题,以下方法对我有用:
在
app/build.gradle
:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlin {
jvmToolchain(17)
}
...
}
无需在
android/build.gradle
中进行调整。
希望这有帮助。