Flutter Java错误:“不支持的类文件主版本63”

3

"转换期间出现一般错误:不支持的类文件主要版本63"

我在这里尝试了多种建议,但都没有成功。我认为我需要更加详细的解决方案,因为我已经尝试安装多个Java版本(19、16、11),flutter cleanflutter doctor 都正常,并且我已经安装了更新版本的Android Studio(以防万一)。以下是我在VSCode中看到的:

enter image description here

enter image description here


此处所示,类文件版本63对应于Java 19。如果它说不支持,那就意味着你没有使用Java 19。回到19并确保你的IDE指向正确的Java版本。仅仅安装一堆随机的Java版本并不能告诉你的IDE和其他程序使用新版本。 - Silvio Mayolo
版本63是Java 19。你的“构建环境”似乎正在使用较旧的 JRE。问题:你是在使用VSCode(我的首选)、Android Studio还是Flutter CLI来构建你的Flutter应用程序?如果你尝试使用Flutter CLI会发生什么(根据我的经验,VSCode构建==CLI构建)?你还应该尝试一下CLI“flutter doctor”。 - paulsm4
@SilvioMayolo 我已经查看了设置,但是没有找到在哪里指定VSCode使用Java 19。您是否熟悉这个过程? - tazboy
@paulsm4 运行 flutter build apk -v 后,以下内容会作为警告打印出来。 运行时类路径中的 JAR 文件应具有相同的版本。在类路径中找到了这些文件: C:/Users/Main/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.5.30/5fd47535cc85f9e24996f939c2de6583991481b0/kotlin-stdlib-jdk8-1.5.30.jar (版本 1.5) C:/Users/Main/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.6.10/e1c380673654a089c4f0c9f83d0ddfdc1efdb498/kotlin-stdlib-jdk7-1.6.10.jar (版本 1.6) - tazboy
Q:你解决了吗? Q:那这个呢? - paulsm4
显示剩余2条评论
2个回答

1

问题在于,您已经构建了一个或多个Java文件(或者您正在使用一个或多个第三方.jars),它们使用的是Java 19...但是您的“构建环境”正在使用旧版本的JRE。因此出现了“不支持的类文件”错误。

我也在使用VSCode作为我的Flutter IDE;我也在我的环境中使用Android Studio。不幸的是,Flutter、VSCode、Android SDK、Android Studio(带有自己的嵌入式Java/Kotlin!)以及Gradle和A/S Gradle插件都在不断地发布新版本。其中任何一个失步都可能破坏您的整个开发环境 :(

我刚刚尝试重新构建一个几个月前编译成功的项目……结果(如预期)构建失败了。没有源更改——但我最近升级了A/S,这无意中破坏了Flutter构建 :(

建议:

  1. 查看能否确定是哪个 Java 类或 .jar 文件正在使用 Java 19 ...,并将其降级到旧版本。

  2. 同时,升级您构建环境中的 所有内容

    • flutter upgrade => Flutter 3.7.3,Dart 2.19.2

    • VSCode 更新,pub upgrade => VSCode 1.751,Dart Code 3.58.0

    • A/S 升级 => Electric Eel 2022.1.1 补丁 1,Gradle 插件 4.2.2

      注意:Gradle 插件 4.2.2 => Gradle 版本 => 6.7.1,默认=Java8,AGP 依赖项 4.2.2

    • A/S Electric Eel 为您提供 java 11... 在(新!)目录“c:\Program Files\Android\Android Studio\jbr”中


1
我在尝试在Firebase Test Lab上运行Flutter集成测试时遇到了这个错误。我通过更新Android Studio中的一些内容来解决了这个问题。

更新项目的JDK

打开Android Studio项目设置页面(文件-> 项目设置)并添加最新的JDK版本。

enter image description here

更新 com.android.tools.build:gradle

在 android/build.gradle 文件中,将 com.android.tools.build:gradle 的值更新为最新版本,可以在 这里 找到最新版本。

 dependencies {
        classpath 'com.android.tools.build:gradle:7.4.1'
        ...
    }

更新gradle distributionUrl

android/gradle/wrapper/gradle-wrapper.properties中,将distributionUrl属性更新为使用最新的Gradle版本

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip

其他有用的提示

  • 您可以在终端中键入/usr/libexec/java_home,查看安装了哪个版本的Java。

  • 您可以在终端中运行%echo $JAVA_HOME来查找当前的JAVA_HOME值(来源)。

  • 您可以按照这些步骤更新JAVA_HOME。


如果您使用的是Visual Studio Code作为IDE,那么最好的解决方案是完全不依赖Android Studio来构建Flutter/Android环境。 - paulsm4
在我的情况下,JDK19与GRADLE7.6构建成功。 - larsien

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接