ปัญหาการเปิดตัว Android คลาสไฟล์หลักที่ไม่รองรับ 57


15

ฉันได้ติดตาม 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)

สภาพแวดล้อม Dev: Mac OS x 10.15


2
ฉันยังมีข้อผิดพลาดเดียวกันด้วยข้อความต่อไปนี้Could not compile settings file '/Users/.../android/settings.gradle'.
semihcosu

คำตอบ:


14

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 cask install https://raw.githubusercontent.com/caskroom/homebrew-cask/025e5b6c3ad66ac2a2da75abb91d109d68dd4f6d/Casks/adoptopenjdk.rb

ฉันปรับลดรุ่นจาก Java 13 เป็นรุ่นที่ต่ำกว่าและใช้งานได้!
jumping_monkey

3

นี่เป็นเพราะรุ่น JDK ของคุณไม่รองรับเวอร์ชัน Gradle ของโครงการของคุณ ไม่รองรับ Gradle 5 ใน jdk-13 ทางออกที่ดีที่สุดคือการเปลี่ยนรุ่นการไล่ระดับสีของคุณใน gradle-wrapper.properties คุณสามารถตั้งค่า gradle ใด ๆ ที่ช้ากว่า 6

หรือ

มีการตั้งค่า (บน Mac)> Build, Execution, Deployment> Gradle

(Windows) ไฟล์> การตั้งค่า> Build, Execution, Deployment> Gradle

จากนั้นภายใต้ส่วน Gradle คุณสามารถเลือก Gradle และ Java ตามที่แสดงในภาพด้านล่างป้อนคำอธิบายรูปภาพที่นี่

คุณยังสามารถติดตั้ง gradle แยกต่างหากและใช้พา ธ ที่ระบุ อย่างไรก็ตามฉันแนะนำให้คุณใช้ไฟล์ gradle-wrapper.properties และ Gradle JVM ไปยัง JDK ภายในหรือ Project JVM วิธีนี้คุณไม่ต้องถอนการติดตั้ง JDK 13 และติดตั้ง downgraded JDK11 หรือ JDK12

หากคุณไม่พบตัวเลือกนี้ใน Android Studio ให้ลดระดับ JDK ของคุณหรือใช้ตัวเลือกแรก


3

เพื่อแก้ไขข้อผิดพลาดนี้ฉันเดินเข้าไปในAndroid / gradle / เสื้อคลุม / gradle-wrapper.propertiesไฟล์และแก้ไข distributionUrl ซึ่งถูกกำหนดให้gradle-5.5เพื่อgradle-6.0 ด้วยเหตุผลบางอย่างมันไม่รู้จักการแจกแจง 6.2 แม้ว่านี่จะเป็นเวอร์ชั่นของ gradle ที่ฉันใช้อยู่ ฉันคิดว่าสิ่งนี้ควรสอดคล้องกับเวอร์ชัน แต่ไม่ชัดเจน

ก่อนหน้า: distributionUrl = https: //services.gradle.org/distribution/gradle-5.5-all.zip

หลัง: distributionUrl = https: //services.gradle.org/distribution/gradle-6.0-all.zip

แจ้งให้เราทราบว่าสิ่งนี้ได้ผลสำหรับคุณ


ขอบคุณ! นี่เป็นปัญหาของฉัน ใช้ Ignite-cli และโปรเจ็กต์พื้นเมืองของฉัน
Jamie S

1

หากคุณไม่ต้องการลดระดับการกระจาย JDK ของคุณคุณสามารถใช้หนึ่งในภาพรวมของ wrapper gradle ซึ่งดูเหมือนจะทำงานสำหรับคนจำนวนมาก (สำหรับฉันเช่นกัน)

แหล่งที่มาของการแก้ปัญหา: https://github.com/gradle/gradle/issues/8681#issuecomment-524039994

ในการใช้สแนปชอตให้เลือกไฟล์ใดไฟล์หนึ่งที่นี่: https://services.gradle.org/distribution-snapshots/ , มุ่งหน้าไปยังPROJECT_ROOT/gradle/wrapper/gradle-wrapper.propertiesไฟล์ของคุณและใส่ที่อยู่ไฟล์ zip เป็นค่าdistributibutionUrl


1
ดีมากนี่ทำให้คุณสามารถเล่นกับทั้ง java 13 และ Gradle :) การเพิ่มเล็ก ๆ : มีการกระจาย RC ของ gradle 6.0 นี่น่าจะเสถียรกว่าสแนปช็อตเก่า: services.gradle.org/distribution/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.