Ich weiß bereits, dass diese Frage bereits sehr oft gestellt und beantwortet wurde, aber keine der Antworten, die ich gefunden habe, hat mein Problem behoben.
Es ist der Fehler:
Error:Gradle: Execution failed for task ':ffcommunity:preDexDebug'.
com.android.ide.common.internal.LoggedErrorException: Failed to run command:
D:\Android SDK\sdk\build-tools\20.0.0\dx.bat --dex --output D:\Users\ReVo\Documents\IntelliJ IDEA\FFCommunity\ffcommunity\build\intermediates\pre-dexed\debug\bananaquery-2ee85432877a057e7414910b8127805535139d5d.jar D:\Users\ReVo\Documents\IntelliJ IDEA\FFCommunity\ffcommunity\libs\bananaquery.jar
Error Code:
1
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:665)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
at com.android.dx.command.dexer.Main.access$600(Main.java:78)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:596)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
...while parsing com/comuf/revonline/bananaquery/BananaInsert.class
1 error; aborting
Der Fehler ist bad class file magic (cafebabe) or version (0034.0000)
.
Ich habe die Anwendung viele Male am selben Tag ohne Probleme erstellt und ausgeführt, aber jetzt schlägt dies jedes Mal mit dieser Nachricht fehl.
Projekt SDK ist Android API 19 Platform
und Projektebene ist 1.7
.
CompileSDK ist 19
und buildToolsVersion ist '20.0.0'
.
Kompilierungsoptionen:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
und in dependencies
ich habe:
compile files('libs/bananaquery.jar')
Die Bibliothek wird mit SDK Android API 19 Platform
auf Projektebene erstellt 1.7
.
Meine .jar
Datei befindet sich im libs/
Ordner.
Ich benutze IntelliJ IDEA 14 Preview, könnte es der Grund sein? Mit IntellIJ IDEA 13 bleibt es bei "Gradle Sync"
Dateien kompilieren könnte nutzlos sein, da ich auch compile fileTree(dir: 'libs', include: ['*.jar'])
habe
quelle
Antworten:
Meine
JAVA_HOME
Variable wurde in Java 1.8 geändert und ich erhielt diese Fehlermeldung beim Kompilieren eines reinen Java-Moduls als Abhängigkeit von meinem Android-Projekt.build.gradle des Java-Moduls
Lösung 1: Schnell und schmutzig
Ich habe es behoben, indem ich meinen
JAVA_HOME
Rücken auf 1,7 gesetzt habe:Lösung 2: Compilerversion ändern:
Wechseln Sie in diesem build.gradle für dieses spezielle Modul zurück zu 1.7
quelle
compileOptions.with { sourceCompatibility=JavaVersion.VERSION_1_7 targetCompatibility=JavaVersion.VERSION_1_7 }
Ok, mein schlechtes.
Wenn Sie im Abschnitt "Projekt-SDK" ein hinzufügen
Android SDK
, sollten Sie das bereitstellen,Java SDK
und alle meine Android-SDKs verwenden Java 8 als SDK, damit die Klassendateien mit der falschen Version erstellt werden, auch wenn die Projektebene aktiviert ist1.7
(ich weiß nicht, warum, vermutete ich) dass alles nach Projektebene ausgewählt wurde).Jetzt habe ich das SDK (das
java version "1.x.0"
Teil) geändert .und es scheint gut zu kompilieren.
Der Grund, der vor heute funktionierte, war, dass mein SDK war
1.8
und nichtAndroid API x
quelle
Für den Fall, dass die Antwort von @Marco Acierno etwas unklar ist, besteht die Lösung darin, sicherzustellen, dass Sie mit Java 7 und nicht mit einer höheren Version erstellen.
Wechseln Sie für Android Studio
File -> Project Structure -> SDK Location -> JDK Location
zujdk1.7.x
. Stellen Sie für die Befehlszeile diejava -version
Ausgaben sicherjava version "1.7.x"
.quelle
Das Zurücksetzen von JAVA_HOME auf 1.7 hat bei mir funktioniert.
quelle
Ändern Sie in jeder build.grade-Datei die gesamte Java-Version Ihres Moduls in Java 1.7.
im Plugin, das Bibliothek und Anwendung ist
und in Java
quelle
Dieses Problem tritt auf, wenn Sie eine
.jar
Datei verwenden, die keine Funktion von Java 6 oder höher verwendet, aber mit Java 6 oder höher erstellt wurde.Wenn Sie diese
.jar
Datei erstellt haben, müssen Sie inGradle
oderProGuard
oder nichts ändernCompiler Version
. Die Lösung ist sehr einfach. Erstellen Sie diese.jar
Datei einfach erneut, verwenden Sie jedoch Java 5 oder weniger .Weitere Details .
quelle
Ich hatte ein ähnliches Problem, das ich durch ein Upgrade meines Proguards gelöst habe. Holen Sie sich Ihre Proguard-Version mit diesem Befehl
Hier erhalten Sie die neueste Datei progaurd.jar ( http://proguard.sourceforge.net ).
Ersetzen Sie die vorhandene android-sdks / tools / proguard / lib / proguard.jar durch eine neue .jar-Datei.
Hoffentlich sollte dir das helfen. Wenn Sie Java 8 verwenden, sollten Sie ein Upgrade auf Proguard 5.x durchführen, da Proguard 4.x Java 8 nicht unterstützt.
quelle
hatte ein ähnliches Problem, als ich versuchte, eine selbst erstellte Bibliothek von NetBeans zu Android Studio hinzuzufügen. Das Setzen der Quell- und Zielkompatibilität in Android Studio und des Quell- / Binärformats in Netbeans (beide!) auf Java 1.7 löste das Problem.
im Android Studio:
Projektstruktur -> Module / App -> Propreties -> Source- und Target to 1.7
in Netbeans:
Datei -> Projekteigenschaften -> Quellen -> Quell- / Binärformat auf 1.7
Bereinigen und erstellen Sie dann Ihr NetBeans-Projekt und kopieren Sie die JAR-Datei von "NBProj / dist" nach "app / libs".
quelle
Teilen Sie die Lösung des Falls, wenn nur Java8 installiert ist. Setzen Sie einfach die Java-Compiler-Ebene auf 1.7 und erstellen Sie das Projekt neu.
quelle
Ich habe den Fehler bei der Verwendung einer Bibliothek eines Drittanbieters erhalten. In Übereinstimmung mit der oben genannten Frage war es notwendig, die Bibliothek gemäß der obigen Stapelverfolgungsnachricht zu ersetzen:
mit der entsprechenden Version.
Entsprechend der Frage
bananaquery.jar
soll durch die Java-kompatible Version ersetzt werden.quelle