Je sais déjà que cette question a déjà été posée très souvent et que des réponses ont été apportées, mais aucune des réponses que j'ai trouvées n'a résolu mon problème.
C'est l'erreur:
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
L'erreur est bad class file magic (cafebabe) or version (0034.0000)
.
J'ai construit et exécuté l'application sans problème plusieurs fois dans la même journée, mais maintenant cela échoue à chaque fois avec ce message.
Le SDK du projet est Android API 19 Platform
et le niveau du projet est 1.7
.
CompileSDK est 19
et buildToolsVersion est '20.0.0'
.
Options de compilation:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
et dans dependencies
j'ai:
compile files('libs/bananaquery.jar')
La bibliothèque est construite avec le SDK Android API 19 Platform
au niveau du projet 1.7
.
Mon .jar
fichier est dans le libs/
dossier.
J'utilise IntelliJ IDEA 14 Preview, cela pourrait être la raison? Avec IntellIJ IDEA 13, il reste bloqué à "Gradle sync"
compiler des fichiers pourrait être inutile puisque moi compile fileTree(dir: 'libs', include: ['*.jar'])
aussi
la source
Réponses:
ma
JAVA_HOME
variable est passée à Java 1.8 et j'ai reçu ce message d'erreur lors de la compilation d'un module java pur en tant que dépendance de mon projet Android.build.gradle du module java
Solution n ° 1: rapide et sale
Je l'ai corrigé en réglant mon
JAVA_HOME
dos à 1,7:Solution n ° 2: changer la version du compilateur:
revenir à 1.7 pour ce module spécifique dans sa build.gradle
la source
compileOptions.with { sourceCompatibility=JavaVersion.VERSION_1_7 targetCompatibility=JavaVersion.VERSION_1_7 }
Ok, mon mauvais.
Dans la section Project SDK, lorsque vous ajoutez un,
Android SDK
vous devez fournir leJava SDK
et tous mes SDK Android utilisent Java 8 comme SDK afin de créer les fichiers de classe avec la mauvaise version même si le niveau du projet est1.7
(je ne sais pas pourquoi, je suppose que tout a été choisi par niveau de projet).Maintenant, j'ai changé le SDK (la
java version "1.x.0"
partie.)et il semble bien compiler.
La raison qui fonctionnait avant aujourd'hui était que mon SDK était
1.8
et nonAndroid API x
la source
Au cas où les gens trouveraient la réponse de @Marco Acierno un peu floue, la solution est de s'assurer que vous construisez avec Java 7 et non avec une version supérieure.
Pour Android Studio, passez
File -> Project Structure -> SDK Location -> JDK Location
àjdk1.7.x
. Pour la ligne de commande, assurez lesjava -version
sortiesjava version "1.7.x"
.la source
La définition de JAVA_HOME sur 1.7 a fonctionné pour moi.
la source
changez toute la version java de votre module en java 1.7 dans chaque fichier build.grade.
dans le plugin qui est bibliothèque et application
et en java
la source
Ce problème se produit lorsque vous utilisez un
.jar
fichier qui n'utilise aucune fonctionnalité de Java 6 ou version ultérieure, mais qui a été créé à l'aide de Java 6 ou version ultérieure.Si vous avez créé ce
.jar
fichier, vous n'avez rien à modifier dansGradle
ouProGuard
ouCompiler Version
. La solution est très simple, il suffit de recréer ce.jar
fichier mais en utilisant Java 5 ou moins .Plus de détails .
la source
J'ai eu un problème similaire, je l'ai résolu en mettant à jour mon proguard. obtenez votre version proguard par cette commande
obtenir le dernier fichier progaurd.jar à partir d'ici ( http://proguard.sourceforge.net )
remplacez le fichier android-sdks / tools / proguard / lib / proguard.jar existant par un nouveau fichier .jar.
J'espère que cela devrait vous aider. Si vous utilisez java 8, vous devez effectuer une mise à niveau vers proguard 5.x coz proguard 4.x ne prend pas en charge java 8.
la source
eu un problème similaire lorsque j'ai essayé d'ajouter une bibliothèque auto-créée de netbeans à android studio. la configuration de la compatibilité source et cible dans le studio Android et le format source / binaire dans netbeans (les deux!) sur java 1.7 a résolu le problème.
dans le studio Android:
Structure du projet -> Modules / App -> Propriétés -> Source et cible à 1.7
dans netbeans:
Fichier -> Propriétés du projet -> Sources -> Format source / binaire à 1.7
puis nettoyez et compilez votre projet netbeans et copiez le .jar de "NBProj / dist" vers "app / libs"
la source
Partagez la solution du cas si seul Java8 est installé, définissez simplement le niveau du compilateur Java sur 1.7, puis reconstruisez le projet devrait être OK.
la source
J'ai eu l'erreur lors de l'utilisation d'une bibliothèque tierce. Conformément à la question susmentionnée, il était nécessaire de remplacer la bibliothèque conformément au message de trace de pile ci-dessus:
avec la version appropriée.
Correspondant à la question,
bananaquery.jar
doit être remplacé par la version compatible Java.la source