我正在尝试运行一个 flutter 应用程序,并且在尝试时出现了这个错误,我所做的是我想在没有 android studio 的情况下运行 flutter 应用程序,所以我在运行 flutter doctor 之后下载了 android SDK 和 JDK 17,它给出了我觉得一切都很好,我试着运行,但它给了我这个错误:
FAILURE: Build failed with an exception.
* Where:
Build file 'E:\Flutter Apps\first_app\android\build.gradle'
* What went wrong:
Could not compile build file 'E:\Flutter Apps\first_app\android\build.gradle'.
> startup failed:
General error during semantic analysis: Unsupported class file major version 61
.............
所以我尝试了一个旧版本的 JDK,它给了我另一个错误,所以我看到了第三个运行 JDK 17 的解决方案,即降级 gradle.properties 中的 gradle,但它给了我第四个错误,也是任何人都知道这个错误的最终解决方案??
根据 DeveloperOmar 100 的回答,我找到了以下解决方案:
将您的 Java 版本切换到兼容版本,在我的例子中是 Java version 16.0.2
要切换它,你必须设置你的路径。 (例如,对于 Mac,您可以使用
java_home
命令)。
检查你的 Gradle 版本并更新那个版本,所以它是兼容的(见 Gradle wrapper docs)所以在我的情况下我不得不改变
distributionUrl
中的android/gradle/wrapper/gradle-wrapper.properties
属性:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
对我来说,升级 Gradle 解决了这个问题。我只需要在 gradle-wrapper.properties 文件中更改这一行:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
我在 Windows 计算机上试用 Kotlin/Compose 时遇到了同样的问题。我按照 https://github.com/JetBrains/compose-jb/tree/master/tutorials/Getting_Started
中的说明进行操作纠结了几个小时,终于解决了我遇到的所有问题。
在 gradle 设置中更改了 Gradle JVM:11(版本 11.0.12)
build.gradle.kts中我删除了
tasks.withType { kotlinOptions.jvmTarget = "16" }
我从安装开始
然后我使用以下设置创建了一个“hello world”示例:
项目模板:Compose Desktop Application 使用 Kotlin 1.5.31
构建系统:Gradle Kotlin
JDK 项目:17 Oracle OpenJDK 版本 17.0.2
模板:Compose 桌面模块
目标 JVM 版本:16
测试框架:JUnit 5
创建项目时,我更新了 build.gradle.kts
plugins {
kotlin("jvm") version "1.6.10"
id("org.jetbrains.compose") version "1.0.1"
}
错误!源单元“BuildScript”中“语义分析”阶段异常不支持的类文件主要版本 61
我通过更改 gradle 设置解决了这个问题
现在构建没问题,但运行会失败
任务 ':run' 执行失败。 处理 'command 'C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot in\java.exe'' 以非零退出值 1
完成
这是通过删除解决的
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "16"
}
在 build.gradle.kts 中
我遇到了同样的问题,在尝试了所有基于 jdk 的解决方案之后,结果发现我安装的 Gradle 已经过时 - 安装了 7.0.2,它不支持 JDK 17.
您可以使用以下命令检查您的 Gradle 版本:gradle -version
在此处检查特定版本的 Java 需要哪个 Gradle:https://docs.gradle.org/current/userguide/compatibility.html
更新到最新版本后,问题消失了: https://gradle.org/install/
我有 java 17 并尝试执行 Junit 版本 4,这就是我遇到这个确切错误的地方。
但是我已经将我的 java 版本降级到 11,重新运行代码和 viola,这个错误消失了。
或者我可以在不影响 Java 版本 17 的情况下将 Junit 版本升级到 5,根据您的要求选择。
只需从系统中删除 java 17。那对我有帮助