【问题标题】:BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 61 on Apple Arm漏洞!源单元“_BuildScript_”中的“语义分析”阶段异常 Apple Arm 上不支持的类文件主要版本 61
【发布时间】: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

非常感谢您的帮助)

【问题讨论】:

    标签: macos flutter android-studio


    【解决方案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 不兼容。所以

    1. 我先卸载了 java:brew uninstall java
    2. 从azul 安装JDK 8 or JDK 11。
    3. 已安装的 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 现在可以恢复工作了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-06
        • 2021-09-22
        • 2021-12-03
        • 2022-10-25
        • 2022-12-15
        • 2021-06-27
        • 2015-12-30
        • 2022-11-08
        相关资源
        最近更新 更多