안드로이드 출시 문제. 지원되지 않는 클래스 파일 메이저 버전 57


15

나는 맥 안드로이드 시작을 따랐다. 그러나 안드로이드를 실행하면 다음과 같은 오류로 실패한다. 온라인에서 답을 찾으려고했지만 해결책을 찾지 못하는 것 같습니다. 내 컴퓨터에 올바른 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 OS x 10.15


2
또한 다음과 같은 오류가 발생합니다Could not compile settings file '/Users/.../android/settings.gradle'.
semihcosu

답변:


14

실행할 때도 같은 문제가 발생합니다 gradle build. 구글과 github에서 검색에 따르면. gradle현재 버전 (5.xx)이 jdk 13을 지원하지 않는다는 것을 알았습니다. 마지막으로 6.x 버전이 지원하지만 릴리스되지 않았으므로 jdk 버전을 12.x로 다운 그레이드해야합니다.

자바를 12로 다운 그레이드 https://www.jverdeyen.be/mac/downgrade-brew-cask-application/

brew cask uninstall adoptopenjdk # uninstall jdk version 13.x
brew cask install https://raw.githubusercontent.com/caskroom/homebrew-cask/025e5b6c3ad66ac2a2da75abb91d109d68dd4f6d/Casks/adoptopenjdk.rb

Java 13에서 낮은 버전으로 다운 그레이드하고 작동했습니다!
jumping_monkey

3

JDK 버전이 프로젝트의 Gradle 버전을 지원하지 않기 때문입니다. jdk-13에서는 Gradle 5가 지원되지 않습니다. 최상의 해결책은 gradle-wrapper.properties에서 gradle 버전을 변경하는 것입니다. 6 이후의 모든 gradle 버전을 설정할 수 있습니다.

또는

(Mac의 경우) 환경 설정> 빌드, 실행, 배포> 그라들로 이동하십시오.

(Windows) 파일> 설정> 빌드, 실행, 배포> 그라들

그런 다음 Gradle 섹션에서 아래 그림과 같이 Gradle 및 Java를 선택할 수 있습니다여기에 이미지 설명을 입력하십시오

gradle을 별도로 설치하고 지정된 경로를 사용할 수도 있습니다. 그러나 gradle-wrapper.properties 파일과 Gradle JVM을 내부 JDK 또는 프로젝트 JVM에 사용하는 것이 좋습니다. 이 방법으로 JDK 13을 제거하고 다운 그레이드 된 JDK11 또는 JDK12를 설치할 필요가 없습니다.

Android Studio에서이 옵션을 찾을 수 없으면 JDK를 다운 그레이드하거나 첫 번째 옵션을 사용하십시오.


3

이 오류를 해결하기 위해 android / gradle / wrapper / gradle-wrapper.properties 파일로 이동 하여 gradle-5.5 로 설정된 distributionUrl 을 gradle-6.0으로 수정했습니다 . 어떤 이유로 든 현재 배포중인 gradle 버전이지만 6.2 배포판을 인식하지 못합니다. 나는 이것이 버전에 해당한다고 생각했지만 분명히 그렇지 않다.

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

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

이것이 당신에게 효과가 있는지 알려주세요.


감사합니다! 이것은 내 문제였다. ignite-cli 및 내 반응 기본 프로젝트 사용.
Jamie S

1

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


1
니스, 이것은 자바 (13)와 Gradle을 모두 주변의 장난감 당신을 수 있습니다 : 작은 또한 : Gradle을 6.0의 RC 분배가가,이 오래된 스냅 샷보다 안정적이어야한다 : services.gradle.org/distributions/gradle-6.0를 -rc-1-bin.zip
Pieter De Bie

0

AdoptOpenJDK 13에서 14로 업그레이드했으며 이제 Android 프로젝트가 성공적으로 빌드되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.