ЖУЧОК! исключение на этапе «семантический анализ» в исходном блоке «_BuildScript_» Неподдерживаемый файл класса основная версия 61 на Apple Arm

#macos #flutter #android-studio

Вопрос:

Я установил Android Studio Canary 2020.3.1.22 и пытаюсь запустить Flutter проект Apple Silicon(ARM) Mac . К сожалению, это дает мне эту ошибку, когда я пытаюсь запустить default приложение flutter counter.

Вот ошибка, которую я получаю:

 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 и более поздние версии еще не поддерживаются.

Вы можете проверить совместимость здесь.

Поэтому я установил Java11 из Azul.

p.s. не забудьте изменить версию jdk в Android studio

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

Комментарии:

1. У меня та же проблема при попытке перенести мою сборку класса с Java 8 на Java 17.

2. По состоянию на Gradle v7.3.0 Java 17 работает нормально

Ответ №2:

В принципе, я установил jdk, используя brew install java который, я думаю, был несовместим с моим текущим классом. Так

  1. Я сначала удалил java, используя: brew uninstall java
  2. установлен JDK 8 or JDK 11 из azul.
  3. Установленный градусник: 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)
 

Перейдите по пути к версии, которую вы хотите удалить (в данном случае «/Пользователи/ciccio/Библиотека/Java/JavaVirtualMachines/openjdk-17.0/Содержимое/Главная страница»), и удалите всю папку: «/Пользователи/ciccio/Библиотека/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)
[~]$
 

Теперь ваш выпускник вернулся к работе.