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

Posted

技术标签:

【中文标题】漏洞!源单元“_BuildScript_”中的“语义分析”阶段异常 Apple Arm 上不支持的类文件主要版本 61【英文标题】:BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 61 on Apple Arm 【发布时间】:2021-10-06 09:48:13 【问题描述】:

我已经安装了 android Studio Canary 2020.3.1.22 并尝试在 Apple Silicon(ARM) Mac 上运行 Flutter 项目。不幸的是,当我尝试运行 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

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

非常感谢您的帮助)

【问题讨论】:

【参考方案1】:

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

您可以检查兼容性here。

所以我从Azul 安装了Java11

附言不要忘记在 Android Studio 中更改 jdk 版本

Preferences -> Build -> Build Tools -> Gradle -> Gradle JDK

【讨论】:

我在尝试将使用 Java 8 的成绩构建移植到 Java 17 时遇到了同样的问题。 从 Gradle v7.3.0 开始,Java 17 工作正常【参考方案2】:

基本上,我使用brew install java 安装了 jdk,我猜这与我当前的 gradle 不兼容。所以

    我先卸载了 java:brew uninstall java 从azul 安装JDK 8 or JDK 11。 已安装的 gradle:gradle-6.9-all.zip

完成后,一切顺利。

【讨论】:

【参考方案3】:

首先,你可以执行这个命令:/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

现在,假设您要删除版本 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)

进入您要删除的版本的路径(在本例中为“/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

强制使用新版本 (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)
[~]$

你的 Gradle 现在可以恢复工作了。

【讨论】:

以上是关于漏洞!源单元“_BuildScript_”中的“语义分析”阶段异常 Apple Arm 上不支持的类文件主要版本 61的主要内容,如果未能解决你的问题,请参考以下文章

Redis未授权访问漏洞修复加固

如何从 Handsontable 中的源数据中获取行

OLE Excel 输出中的国际日期格式问题

Linux (x86) Exploit系列之三 Off-By-One 漏洞 (基于栈)

八年级语文下册第四单元检测卷以及答案

倾家荡产跪求:初二下册1-4单元单词,要有汉语意思。人教实验版go for it