漏洞!源单元“_BuildScript_”中“语义分析”阶段出现异常 Apple Arm 上不支持类文件主要版本 61

Kha*_*dov 171 macos android-studio flutter

我已经安装了 Android Studio Canary2020.3.1.22并尝试FlutterApple Silicon(ARM) Mac. 不幸的是,当我尝试运行default颤振计数器应用程序时,它给了我这个错误。

这是我收到的错误:

Could not open settings generic class cache for settings file '/Users/khamidjonkhamidov/StudioProjects/dummy/android/settings.gradle' (/Users/khamidjonkhamidov/.gradle/caches/6.7/scripts/f0emg6u6oecmxqzgk5g9nn4ui).
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 61
Run Code Online (Sandbox Code Playgroud)

Gradle version: 6.7但我尝试了 7+ JDK 版本17

我将衷心感谢您的帮助)

neb*_*raa 160

根据官方等级文档:尚不支持Java 17及更高版本。

您可以在此处检查兼容性。

所以我是Java11Azul安装的。

ps不要忘记更改Android studio中的jdk版本,该版本仅在Android项目上可用,以打开它

File-> open -> select the android folder inside your flutter project -> open in a new window

然后就可以更改jdk版本了 Preferences -> Build -> Build Tools -> Gradle -> Gradle JDK

  • 从 Gradle v7.3.0 开始,Java 17 工作正常 (13认同)

Fai*_*Dae 38

当我更新我的 android studio 时遇到这个错误

\n

解决方案:

\n

你需要升级你distributionUrl的 根据java version

\n

\xe2\x80\x8c下面是Java version支持的Gradle version

\n\n

  • 此兼容性表的来源(用于未来版本):https://docs.gradle.org/current/userguide/compatibility.html (7认同)

Aru*_*P M 32

当我将 build.gradle 升级到 Java 17 时遇到了同样的错误。修复方法就像我们想象的一样简单:

Gradle starts supporting Java17 only from 7.3 release
Run Code Online (Sandbox Code Playgroud)

以下是 Java 与 Gradle 兼容性的完整参考: https://docs.gradle.org/current/userguide/compatibility.html

在 gradle-wrapper.properties 中将我的 gradle 升级到 7.3。

https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
Run Code Online (Sandbox Code Playgroud)

你们中的一些人现在可能会像我一样遇到Gradle 依赖项缓存损坏错误。因此最好删除 gradle-wrapper.jar 并使用以下命令重新安装:

./gradlew wrapper
Run Code Online (Sandbox Code Playgroud)

从这里一切都会完美地进行。

如果您仍然面临 Gradle 损坏问题,请检查您是否使用最新版本的 IDE,尤其是 Intellij。


elp*_*elp 25

首先,您可以执行以下命令:/usr/libexec/java_home -V,检索所有已安装的jdsk:

[~]$ /usr/libexec/java_home -V

Matching Java Virtual Machines (4):
    17.0 (x86_64) "Oracle Corporation" - "OpenJDK 17.0" /Users/ciccio/Library/Java/JavaVirtualMachines/openjdk-17.0/Contents/Home
    14.0.1 (x86_64) "Oracle Corporation" - "OpenJDK 14.0.1" /Users/ciccio/Library/Java/JavaVirtualMachines/openjdk-14.0.1/Contents/Home
    11.0.12.1 (x86_64) "Amazon.com Inc." - "Amazon Corretto 11" /Users/ciccio/Library/Java/JavaVirtualMachines/corretto-11.0.12/Contents/Home
    10.0.2 (x86_64) "Oracle Corporation" - "Java SE 10.0.2" /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
    1.8.0_302 (x86_64) "Amazon" - "Amazon Corretto 8" /Users/ciccio/Library/Java/JavaVirtualMachines/corretto-1.8.0_302/Contents/Home
Run Code Online (Sandbox Code Playgroud)

现在,假设您要删除版本17

[~]$ java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment Homebrew (build 17+0)
OpenJDK 64-Bit Server VM Homebrew (build 17+0, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

进入要删除的版本的路径(在本例中为“ /Users/ciccio/Library/Java/JavaVirtualMachines/openjdk-17.0/Contents/Home ”),然后删除整个文件夹:“ /Users/ciccio/Library/ Java/JavaVirtualMachines/openjdk-17.0 “。

删除后,返回终端并使用:

[~]$ /usr/libexec/java_home -v 14.0.1 --exec javac -version
javac 14.0.1
Run Code Online (Sandbox Code Playgroud)

强制使用新版本 (14.0.1)。

接下来检查是否正确:

[~]$ java -version
openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+7)
OpenJDK 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
[~]$
Run Code Online (Sandbox Code Playgroud)

您的 Gradle 现在已恢复工作。


Elm*_*mar 24

2023 年 1 月,Mac Mini M1 上新创建的 Flutter 应用程序发生了这种情况。如果您有其他正在运行的 Flutter 应用程序,请不要降级或更新 Java 版本,因为这会导致所有其他正在运行的应用程序出现问题。在文件夹内(直接在 Android 文件夹内)找到 gradle-wrapper.properities 文件gradle/wrapper并检查 gradle 版本。您只需要使用较新版本的 gradle 即可。我替换了这个并使用flutter run终端命令,它起作用了:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
Run Code Online (Sandbox Code Playgroud)

有了这个:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
Run Code Online (Sandbox Code Playgroud)

无需做任何其他事情。版本号可能会有所不同,具体取决于您尝试此操作的时间以及您拥有的 Java 版本。

注意:同样的修复对于另一个错误消息也有效,并指出版本 63:

BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 63
Run Code Online (Sandbox Code Playgroud)


小智 20

无需降级Java版本。只需升级 Gradle

  1. 选择支持您的Java版本的gradle版本链接
  2. 打开您的项目并导航至your_project_name/android/gradle/wrapper/gradle-wrapper.properties
  3. distributionUrl根据您的 Java 版本更改Gradle 版本。您可以在此处查看列表:gradle list

  • 虽然这些信息可能会有所帮助,但请考虑编辑帖子的格式(使用内置列表格式)并删除不必要的评论,例如“终于我找到了解决方案”和“它很容易解决,因为这些往往会成为垃圾邮件和分散你答案中真实信息的注意力。 (2认同)

Kha*_*dov 14

基本上,我安装的 jdkbrew install java与我当前的 gradle 不兼容,我猜。所以

  1. 我首先使用以下命令卸载了java:brew uninstall java
  2. JDK 8 or JDK 11azul安装。
  3. 安装的gradle:gradle-6.9-all.zip

完成后,一切都很顺利。


M. *_*ula 10

就我而言,我有这套

\n

在终端上输入flutter --version

\n
Flutter 3.7.5 \xe2\x80\xa2 channel stable \xe2\x80\xa2 https://github.com/flutter/flutter.git\nFramework \xe2\x80\xa2 revision c07f788888 (10 weeks ago) \xe2\x80\xa2 2023-02-22 17:52:33 -0600\nEngine \xe2\x80\xa2 revision 0f359063c4\nTools \xe2\x80\xa2 Dart 2.19.2 \xe2\x80\xa2 DevTools 2.20.1\n
Run Code Online (Sandbox Code Playgroud)\n

在终端上输入javac -version以获取 java 版本:

\n
javac 19.0.2\n
Run Code Online (Sandbox Code Playgroud)\n

因此,通过这个等级兼容性矩阵,我必须将我的project/android/gradle/wrapper/gradle-wrapper.properties distributionUrl更新为:

\n
distributionUrl=https\\://services.gradle.org/distributions/gradle-7.6-all.zip\n
Run Code Online (Sandbox Code Playgroud)\n


Nic*_*ist 8

我找到了一种方法来修复此错误,而不会干扰本地安装的 Java 版本或 Gradle。这是我所做的:

\n
    \n
  1. 如果您正在开发 Flutter 项目并遇到此错误,请转到File -> Close Project
  2. \n
  3. 然后从 android 文件夹重新打开(如果您是从纯 Android 项目收到的,请忽略此操作)。
  4. \n
  5. 现在,Gradle 可能会自行检测到该问题,并且需要一段时间才能检查。完成后,它可能会在窗口底部的升级助手窗口中提供升级步骤以及 logcat、build、terminal 等\xe2\x80\xa6,您需要接受并告诉它执行。完成后,错误就解决了,您就可以开始了。
  6. \n
  7. 如果它本身似乎没有做任何事情,那么请打开“项目结构”选项卡。现在选择不包含-rc的最新 Gradle 版本(您不需要这些,大多数时候它们不是稳定版本)。
  8. \n
  9. 现在,通过转到Gradle(窗口右侧的侧边栏)->扳手图标-> Gradle 设置,选择 Gradle 使用的 JDK 版本。根据 Gradle 项目的文档选择兼容的 JDK 版本,如此处所示。当前最新的 Gradle 稳定版本是 7.4,最大支持的 JDK 版本为 17(我相信如果你使用像我使用的 openJDK这样的东西,也是最新的)这样的东西,也是最新的),但 Android Studio 版本为 7.1,所以要小心。
  10. \n
\n

在运行 macOS Monterey 12.2.1 的 MacBook Air M1 上进行了测试。

\n


Paw*_*rma 5

检查当前活动的 java 版本:-

javac-版本

如果大于 11,请将其降级为 11 或 8。检查您安装的可用 java jdk 版本:-

/usr/libexec/java_home -V

如果未安装 java 11 或 8,请首先使用此链接安装其中一个:-下载 jdk 8

然后更改.bash_profile中的默认java版本

编辑.bash_profile

须藤纳米 ~/.bash_profile

添加 1.8 或 11 作为默认值。(将以下行添加到 bash_profile 文件)

导出 JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

或者

导出 JAVA_HOME=$(/usr/libexec/java_home -v 11)

现在按 CTRL+X 退出 bash。按“Y”保存更改。并重新加载 bash_profile

源~/.bash_profile