I have installed Android Studio Canary 2020.3.1.22
and trying to run Flutter
project on Apple Silicon(ARM) Mac
. Unfortunately, it is giving me this error when I try to run default
flutter counter app.
Here is the error I am getting:
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
but I tried 7+
JDK version 17
I would really appreciate your help)
According to the official grade docs: Java 17 and later versions are not yet supported.
You can check compatibility here.
So I have installed Java11
from Azul.
p.s. don't forget to change jdk version in Android studio
Preferences -> Build -> Build Tools -> Gradle -> Gradle JDK
Basically, I installed jdk using brew install java
which was not compatible with my current gradle I guess. So
brew uninstall java
JDK 8 or JDK 11
from azul.When done, everything worked smoothly.
Got the same error while I upgraded my build.gradle to Java 17. And the fix is as simple as we think:
Gradle starts supporting Java17 only from 7.3 release
Here's the complete reference for Java vs Gradle compatibility: https://docs.gradle.org/current/userguide/compatibility.html
Upgraded my gradle to 7.3 in gradle-wrapper.properties.
https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
Some of you may experience now the Gradle dependency cache corrupt error after this like me. So better delete the gradle-wrapper.jar and reinstall it using the command:
./gradlew wrapper
Everything will work perfectly fine from here.
In case if you still face Gradle corrupt issue, please check whether you are using latest version of IDE especially Intellij.
First, you can execute this command: /usr/libexec/java_home -V
, to retrieve all installed 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
Now, imagine you want to remove the version 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)
Go into the path of the version you want to remove (in this case "/Users/ciccio/Library/Java/JavaVirtualMachines/openjdk-17.0/Contents/Home"), and delete entire folder: "/Users/ciccio/Library/Java/JavaVirtualMachines/openjdk-17.0".
Once removed, go back on terminal and use:
[~]$ /usr/libexec/java_home -v 14.0.1 --exec javac -version
javac 14.0.1
to force the new version to use (14.0.1).
Next check if is correct:
[~]$ 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)
[~]$
Your Gradle now is back to work.
I found a way to fix this error without messing with the locally installed Java version or Gradle. Here is what I did:
Tested on MacBook Air M1 running macOS Monterey 12.2.1.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With