2015-02-22 6 views
5

Ich habe ein eigenes Framework, dass ich für In-Class-Aufgaben (Schulklasse, nicht Java-Klasse) verwenden, und ich machte es in eine .jar Datei, so dass, wenn ich Änderungen an der Framework kann ich es einfach per Drag & Drop in Android Studio ziehen. Alles funktionierte gut für die letzten 5 oder so Klassenaufgaben, und jetzt bekomme ich plötzlich einen preDexDebug failed Fehler beim Analysieren meiner .jar nach dem Klicken auf run. Ich habe das an einem leeren Projekt getestet. Das Projekt hat insgesamt 2 .jar s: Gson und mein eigenes Glas. Es druckt preDexDebug failed direkt nachdem ich in meine eigene .jar ziehe ... Ich habe damit für zwei empörende Stunden gerungen, und ich weiß nicht, was ich tun kann, um das überhaupt zu reparieren ...Android Studio preDexDebug Nach dem Hinzufügen von jar Datei

I ' Ich habe versucht, Umbau, Reinigung, Überprüfung gradle.build für Duplikate, mehrmals das Projekt zu replizieren, und auch das .jar mehrfach zu kompilieren und zu kopieren.

Ubuntu x64 mit 64 Bit Oracle JDK 1.8.0_31. Verwenden von Java mit der JDK

gebündelt

Android Studio Ausgabe:

Configuration on demand is an incubating feature. 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:compileDebugNdk UP-TO-DATE 
:app:checkDebugManifest 
:app:preReleaseBuild UP-TO-DATE 
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE 
:app:prepareDebugDependencies 
:app:compileDebugAidl UP-TO-DATE 
:app:compileDebugRenderscript UP-TO-DATE 
:app:generateDebugBuildConfig UP-TO-DATE 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets UP-TO-DATE 
:app:generateDebugResValues UP-TO-DATE 
:app:generateDebugResources UP-TO-DATE 
:app:mergeDebugResources UP-TO-DATE 
:app:processDebugManifest UP-TO-DATE 
:app:processDebugResources UP-TO-DATE 
:app:generateDebugSources UP-TO-DATE 
:app:compileDebugJava 
:app:preDexDebug 
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)","position":{},"original":"com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)","position":{},"original":"\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processClass(Main.java:704)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)","position":{},"original":"\tat com.android.dx.command.dexer.Main.access$300(Main.java:83)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)","position":{},"original":"\tat com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)","position":{},"original":"\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processOne(Main.java:632)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)","position":{},"original":"\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"} 
AGPBI: {"kind":"SIMPLE","text":"...while parsing reactor/communications/ClientEndpointTCP.class","position":{},"original":"...while parsing reactor/communications/ClientEndpointTCP.class"} 
AGPBI: {"kind":"SIMPLE","text":"1 error; aborting","position":{},"original":"1 error; aborting"} 
+0

sicher, dass Ihr Fehler macht es so aussehen wie Sie etwas in "Reaktor/Kommunikation/ClientEndpointTCP.class" zu verursachen, das Problem verändert haben. Dies könnte ein guter Zeitpunkt sein, um ein Versionskontrollsystem zu verwenden, um Änderungen in Ihrem Code zu verfolgen, so dass Sie leicht eine bekannte gute Version sichern und herausfinden können, welche genaue Änderung dafür verantwortlich ist. –

+0

Ich habe gerade festgestellt, dass dies das erste Mal ist, dass ich alles auf meinem Desktop zusammengestellt habe. Es funktionierte immer auf meinem Laptop, der OpenJDK 1.7 hat, und da ist noch eine andere Person, die auch den "Bad Magic" -Fehler hatte. Ich habe mich darum gekümmert und es scheint, dass das Android SDK offiziell nur Java 7 unterstützt, daher macht der Fehler jetzt Sinn. Ich werde versuchen, auf meinem Laptop für den Moment zu kompilieren – Alex

Antwort

4

Java 8 Stellt sich heraus, ist noch nicht von der Android SDK unterstützt (Oder etwas in diese Richtung). Die Installation von Oracle JDK 7 auf meinem Desktop und die Neukompilierung meiner .jar Lösung haben das Problem vollständig behoben.

Der wichtigste Teil wurde in der zweiten Zeile des Fehlers produziert: "bad class file magic (cafebabe) or version (0034.0000)". 0x34 ist hex für 52, was bedeutet, dass die Binärdateien für JREs ausgerichtet sind, die Java unterstützen 8, aber Android Studio Systemanforderungen fest, dass JDK 7

Schritte erforderlich 7 bis Oracle JDK zu wechseln:

  1. herunterladen JDK .tar von Oracle-Website
  2. Untar Inhalt /opt/
  3. sudo update-alternatives --install /bin/java java /opt/jdk*version*/jre/bin/java 1023
  4. sudo update-alternatives --install /bin/javac javac /opt/jdk*version*/bin/javac 1023
  5. sudo update-alternatives --install /bin/jar jar /opt/jdk*version*/bin/jar 1023

https://askubuntu.com/questions/56104/how-can-i-install-sun-oracles-proprietary-java-jdk-6-7-8-or-jre

+0

Können Sie einen Link zur Verfügung stellen, wie Sie zu Java 7 wechseln? – matto1990

+0

Ich habe meine Antwort aktualisiert – Alex

Verwandte Themen