【问题标题】:android launch issues. Unsupported class file major version 57安卓启动问题。不支持的类文件主要版本 57
【发布时间】:2020-02-09 06:09:39
【问题描述】:

我已经关注 mac android 入门,但是当我运行 android 时它失败并出现以下错误。我试图在网上找到答案,但我似乎无法找到解决方案。我确保我的机器上安装了正确的 java jdk8,但我仍然收到此错误。任何意见是极大的赞赏!

> 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)

开发环境: Mac 操作系统 x 10.15

【问题讨论】:

  • 我也有同样的错误,下面的消息Could not compile settings file '/Users/.../android/settings.gradle'.

标签: react-native


【解决方案1】:

我在运行gradle build 时遇到了同样的问题。根据google和github的搜索。发现gradle当前版本(5.xx)不支持jdk 13,最后6.x版本支持了,但是还没有发布,所以只好将jdk版本降级到12.x。

将 java 降级到 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

【讨论】:

  • 我从 Java 13 降级到较低版本并且它工作正常!
【解决方案2】:

如果您不想降级您的 JDK 发行版,您可以使用 gradle wrapper 的快照之一,这似乎适用于很多人(对我来说也是如此)

解决方案来源:https://github.com/gradle/gradle/issues/8681#issuecomment-524039994

要使用快照,请选择此处可用的文件之一:https://services.gradle.org/distributions-snapshots/,前往您的 PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties 文件并将 zip 文件地址作为值 distributibutionUrl

【讨论】:

【解决方案3】:

这是因为您的 JDK 版本不支持您项目的 Gradle 版本。 jdk-13 不支持 Gradle 5。最好的解决方案是在 gradle-wrapper.properties 中更改您的 gradle 版本。可以设置任何高于6的gradle版本,

或者

转到(在 Mac 上)首选项>构建、执行、部署>Gradle

(Windows) 文件>设置>构建、执行、部署>Gradle

然后在 Gradle 部分下,您可以选择 Gradle 和 Java,如下图

您也可以单独安装 gradle 并使用指定路径。但是我建议您使用 gradle-wrapper.properties 文件和 Gradle JVM 到内部 JDK 或 Project JVM。这样您就不必卸载 JDK 13 并安装降级的 JDK11 或 JDK12

如果您在 Android Studio 中没有找到此选项,请降级您的 JDK 或使用第一个选项。

【讨论】:

    【解决方案4】:

    为了修复这个错误,我转到android/gradle/wrapper/gradle-wrapper.properties 的文件目录并修改了设置为gradle-5.5distributionUrl,而不是我使用了gradle-6.0 .出于某种原因,它无法识别 6.2 发行版,即使这是我目前使用的 gradle 版本。我认为这应该与版本相对应,但显然不是。

    代替:

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

    用途:

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

    【讨论】:

    • 谢谢!这是我的问题。使用 ignite-cli 和我的 react native 项目。
    • 我发现这很有帮助!显然,它现在也适用于 gradle-6.2
    • 在哪里可以找到“android”文件夹?
    • android 文件夹应该在你的应用程序的根目录下,一直在顶部。它应该按字母顺序排列,因此 Android 文件夹应该是文件顺序顶部的第一个或第二个。
    【解决方案5】:

    我从 AdoptOpenJDK 13 升级到 14,现在我的 Android 项目构建成功。

    【讨论】:

      【解决方案6】:

      当我按照Okta Spring Security Authentication Example 中的描述执行./gradlew bootRun 时搜索此错误后,我登陆了此页面。事实上,我在 Ubuntu 20 上有 OpenJDK13:

      $ 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)
      

      我不喜欢降级我的 Java 版本的想法,所以我改为 upgraded Gradlerebuilt gradlew 这是一个特定于项目的 wrapper。在尝试此解决方案之前,请确保您正在使用版本控制或拥有当前项目的备份

      这些是步骤:

      1) 安装skdkman 即可轻松安装gradle。使用apt install 给了我一个古老的版本。

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

      2) 检查 sdkman 是否安装正确

      sdk version
      

      3) 安装gradle 6

      sdk install gradle 6.5
      

      4) 在同一目录下重建gradlew

      gradle wrapper
      

      5) 运行应用程序

      ./gradlew bootRun
      

      你应该看到这样的东西:

      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)
      

      执行git status 表明许多文件已更改:

      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
      

      对于我的使用,我将在我自己的分支中简单地提交这些更改。

      【讨论】:

        【解决方案7】:

        我的愚蠢错误是我没有在 shell 中加载配置。 React Native env setup 表示要加载环境变量执行:

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

        所以对我来说,env 文件位于根文件夹中。所以我不得不使用命令加载它们

        $ source ~/.bash_profile
        

        【讨论】:

          【解决方案8】:

          将gradle版本提高到7以上,或者你可以将JAVA版本降低到16以下,就可以了。

          【讨论】:

            猜你喜欢
            • 2020-04-29
            • 1970-01-01
            • 1970-01-01
            • 2022-11-08
            • 2020-12-09
            • 2020-04-21
            • 2019-07-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多