26

I have followed the mac android getting started but when I run-android it fails with the following error(s). I've tried to find the answer online but I cant seem to find a solution. Ive made sure that I have the correct java jdk8 installed on my machine but im still getting this error. Any advice is greatly appreciated!

> startup failed:
  General error during semantic analysis: Unsupported class file major version 57

  java.lang.IllegalArgumentException: Unsupported class file major version 57
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:184)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:166)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:152)
        at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:273)
        at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
        at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:254)
        at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:192)
        at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:172)
        at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:128)
        at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:59)
        at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:46)
        at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveNonArrayType(AsmReferenceResolver.java:81)
        at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveType(AsmReferenceResolver.java:72)
        at org.codehaus.groovy.ast.decompiled.MemberSignatureParser.createMethodNode(MemberSignatureParser.java:55)
        at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitMembers(DecompiledClassNode.java:195)
        at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getDeclaredMethods(DecompiledClassNode.java:121)
        at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:912)
        at org.codehaus.groovy.ast.ClassNode.tryFindPossibleMethod(ClassNode.java:1280)
        at org.codehaus.groovy.control.StaticImportVisitor.transformMethodCallExpression(StaticImportVisitor.java:252)
        at org.codehaus.groovy.control.StaticImportVisitor.transform(StaticImportVisitor.java:112)
        at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitExpressionStatement(ClassCodeExpressionTransformer.java:144)
        at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:42)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:110)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:121)
        at org.codehaus.groovy.ast.ClassCodeExpressionTransformer.visitConstructorOrMethod(ClassCodeExpressionTransformer.java:55)
        at org.codehaus.groovy.control.StaticImportVisitor.visitConstructorOrMethod(StaticImportVisitor.java:88)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructor(ClassCodeVisitorSupport.java:128)
        at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1099)
        at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:54)
        at org.codehaus.groovy.control.StaticImportVisitor.visitClass(StaticImportVisitor.java:82)
        at org.codehaus.groovy.control.CompilationUnit$14.call(CompilationUnit.java:717)
        at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1095)
        at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:649)
        at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:627)
        at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:604)
        at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:390)
        at groovy.lang.GroovyClassLoader.access$300(GroovyClassLoader.java:89)
        at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:330)
        at groovy.lang.GroovyClassLoader$5.provide(GroovyClassLoader.java:327)
        at org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:147)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:325)
        at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileScript(DefaultScriptCompilationHandler.java:133)
        at org.gradle.groovy.scripts.internal.DefaultScriptCompilationHandler.compileToDir(DefaultScriptCompilationHandler.java:93)
        at org.gradle.groovy.scripts.internal.BuildOperationBackedScriptCompilationHandler$2.run(BuildOperationBackedScriptCompilationHandler.java:54)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.groovy.scripts.internal.BuildOperationBackedScriptCompilationHandler.compileToDir(BuildOperationBackedScriptCompilationHandler.java:51)

Dev environment: Mac os x 10.15

rtwhite
  • 399
  • 1
  • 3
  • 8
  • 2
    I'm also having the same error, with the following message `Could not compile settings file '/Users/.../android/settings.gradle'.` – semihcosu Oct 12 '19 at 08:02

9 Answers9

20

I suffer the same issue when run gradle build. According to search from google and github. I found the gradle current version (5.x.x) not support jdk 13. Finally, the 6.x version support it, but it has not been released, so I have to downgrade the jdk version to 12.x.

Downgrade java to 12 https://www.jverdeyen.be/mac/downgrade-brew-cask-application/

brew cask uninstall adoptopenjdk # uninstall jdk version 13.x
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk12
Liang Zeng
  • 323
  • 3
  • 6
10

To fix this error I went to the file directory at android/gradle/wrapper/gradle-wrapper.properties and modified the distributionUrl which was set to gradle-5.5 instead I used gradle-6.0. For some reason, it does not recognize the 6.2 distribution, even though this is the version of gradle I am currently on. I figured this was supposed to correspond to the version but apparently not.

Instead of:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-all.zip

Use:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-all.zip
MendelG
  • 14,885
  • 4
  • 25
  • 52
Alex
  • 109
  • 1
  • 3
  • 1
    Thank you! This was my problem. Using the ignite-cli and my react native project. – Jamie S Mar 31 '20 at 00:15
  • 1
    I found this very helpful! Apparently, it works with `gradle-6.2` as well now. – kske Jun 21 '20 at 12:26
  • Where can I find the "android" folder? –  Jun 01 '21 at 17:42
  • The android folder should be in the root directory of your app, all the way at the top. It should be in alphabetical order, so Android folder should be first or second from the top of the file order. – Alex Jun 03 '21 at 16:41
5

This is because your JDK version doesnot support Gradle version of your project. Gradle 5 is not supported in jdk-13. Best Solution is to change your gradle version in gradle-wrapper.properties. You can set any gradle version later than 6,

Or

Got to (on Mac) Preferences>Build,Execution,Deployment>Gradle

(Windows) File>Settings>Build,Execution,Deployment>Gradle

Then under section Gradle You can choose Gradle and Java as given in picture belowenter image description here

You can also install gradle separately and use specified path. However I recommend you to use gradle-wrapper.properties file and Gradle JVM to internal JDK or Project JVM. This way you don't have to uninstall your JDK 13 and install downgraded JDK11 or JDK12

If you do not find this option in Android Studio, Downgrade your JDK or use first option.

Suresh Chaudhari
  • 648
  • 1
  • 8
  • 21
1

If you don't want to downgrade your JDK distribution, you can use one of gradle wrapper's snapshots, which seems to work for many people (for me as well)

Source of the solution: https://github.com/gradle/gradle/issues/8681#issuecomment-524039994

To use the snapshot choose one of the files available here: https://services.gradle.org/distributions-snapshots/, head up to your PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties file and put zip file address as a value of distributibutionUrl

wkukielczak
  • 429
  • 4
  • 8
  • 1
    Nice, this allows you to toy around with both java 13 and Gradle :) A small addition: there is a RC distribution of gradle 6.0, this should be more stable than an old snapshot: https://services.gradle.org/distributions/gradle-6.0-rc-1-bin.zip – Pieter De Bie Oct 25 '19 at 04:02
1

I landed on this page after searching for this error when I did ./gradlew bootRun as described in the Okta Spring Security Authentication Example. Indeed I have OpenJDK13 on Ubuntu 20:

$ java --version
openjdk 13.0.3 2020-04-14
OpenJDK Runtime Environment (build 13.0.3+3-Ubuntu-1ubuntu2)
OpenJDK 64-Bit Server VM (build 13.0.3+3-Ubuntu-1ubuntu2, mixed mode)

I didn't like the idea of downgrading my Java version, so instead I upgraded Gradle and rebuilt gradlew which is a wrapper that is specific to the project. Before attempting this solution, make sure that you're using version control or have a backup of the current project.

These were the steps:

1) Install skdkman to easily install gradle. Using apt install gave me an ancient version.

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

2) Check that sdkman installed correctly

sdk version

3) Install gradle 6

sdk install gradle 6.5

4) Rebuild gradlew on the same directory

gradle wrapper

5) Run application

./gradlew bootRun

You should see something like this:

Downloading https://services.gradle.org/distributions/gradle-6.5-bin.zip
.........10%..........20%..........30%..........40%.........50%..........60%..........70%..........80%.........90%..........100%

> Task :bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.5.RELEASE)

Doing git status shows that many files have changed:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   gradle/wrapper/gradle-wrapper.jar
    modified:   gradle/wrapper/gradle-wrapper.properties
    modified:   gradlew
    modified:   gradlew.bat

For my usage, I'll simply commit these changes in my own branch.

Nagev
  • 10,835
  • 4
  • 58
  • 69
0

I upgraded from AdoptOpenJDK 13 to 14 and my Android projects now build successfully.

Sam
  • 1,009
  • 10
  • 13
0

My stupid mistake was that I was not loading the configuration in the shell. React Native env setup states that to load the environment variables perform:

Type source $HOME/.bash_profile for bash or source $HOME/.zprofile to load the config into your current shell.

So for me, the env file was in the root folder. So I had to load them using the command

$ source ~/.bash_profile
uchiha
  • 81
  • 6
0

Increase the gradle version to 7 or more , or you can reduce the JAVA version less than 16. It will work.

Sahil Bansal
  • 609
  • 8
  • 6
0

Just check your android project directory have any demoapp.iml file if its exist then delete it. It's worked for me.

Nisha Jain
  • 637
  • 6
  • 14