나는 맥 안드로이드 시작을 따랐다. 그러나 안드로이드를 실행하면 다음과 같은 오류로 실패한다. 온라인에서 답을 찾으려고했지만 해결책을 찾지 못하는 것 같습니다. 내 컴퓨터에 올바른 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
답변
실행할 때도 같은 문제가 발생합니다 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
답변
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를 다운 그레이드하거나 첫 번째 옵션을 사용하십시오.
답변
이 오류를 해결하기 위해 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
이것이 당신에게 효과가 있는지 알려주세요.
답변
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
답변
AdoptOpenJDK 13에서 14로 업그레이드했으며 이제 Android 프로젝트가 성공적으로 빌드되었습니다.