Mala clase de archivo de magia o versión

Ya sé que la pregunta ya se ha hecho con frecuencia y las respuestas, pero ninguna de las respuestas que encontré resolvió mi problema.

Es el error:

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 

El error es bad class file magic (cafebabe) or version (0034.0000) .

Construí y ejecuté la aplicación sin problemas muchas veces en el mismo día, pero ahora esto falla cada vez con este mensaje.


Project SDK es Android API 19 Platform y el nivel de proyecto es 1.7 .

CompileSDK es 19 y buildToolsVersion es '20.0.0' .

Opciones de comstackción:

 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } 

y en dependencies tengo:

 compile files('libs/bananaquery.jar') 

La biblioteca está comstackda con SDK Android API 19 Platform con nivel de proyecto 1.7 .

Mi archivo .jar está dentro de libs/ carpeta.

Yo uso IntelliJ IDEA 14 Preview, podría ser la razón? Con IntellIJ IDEA 13 permanece bloqueado en “Gradle sync”

comstackr archivos podría ser inútil ya que he compile fileTree(dir: 'libs', include: ['*.jar']) también

mi variable JAVA_HOME cambió a Java 1.8 y recibí este mensaje de error al comstackr un módulo java puro como una dependencia de mi proyecto de Android.

build.gradle del módulo java

 apply plugin: 'java' 

Solución n. ° 1: Rápido y sucio

Lo arreglé estableciendo mi JAVA_HOME nuevo en 1.7:

 export JAVA_HOME=`/usr/libexec/java_home -v 1.7` 

Solución n. ° 2: cambiar la versión del comstackdor:

cambie de nuevo a 1.7 para este módulo específico en su build.gradle

 apply plugin: 'java' sourceCompatibility = 1.7 targetCompatibility = 1.7 

Ok, mi mal.

En la sección Project SDK, cuando agrega un Android SDK , debe proporcionar el Java SDK y todos mis SDK de Android usan Java 8 como SDK para que cree los archivos de clase con la versión incorrecta, incluso si el nivel del Proyecto es 1.7 (no lo hago). saber por qué, supongo que todo fue elegido por nivel de Proyecto).

Ahora cambié el SDK (la java version "1.x.0" ).

enter image description here

y parece comstackr bien.

La razón por la que funcionaba antes de hoy era porque mi SDK era 1.8 y no Android API x

En caso de que las personas encuentren que la respuesta de @Marco Acierno es poco clara, la solución es asegurarse de que está comstackndo con Java 7 y no con una versión superior.

Para Android Studio, cambie File -> Project Structure -> SDK Location -> JDK Location en jdk1.7.x Para la línea de comando, asegúrese de que java -version produce la java version "1.7.x" .

Configurar JAVA_HOME de nuevo en 1.7 me funcionó.

cambie toda su versión Java del módulo a Java 1.7 en cada archivo build.grade.

en el complemento que es biblioteca y aplicación

 compileOptions{ sourceCompatibility=JavaVersion.VERSION_1_7 targetCompatibility=JavaVersion.VERSION_1_7 } 

y en java

 sourceCompatibility= 1.7 targetCompatibility= 1.7 

Este problema se produce cuando utiliza un archivo .jar que no utiliza ninguna función de Java 6 o superior, sino que se creó con Java 6 o superior.

Si construiste ese archivo .jar , entonces no necesitas cambiar nada en Gradle ProGuard o la Compiler Version . La solución es muy simple, solo .jar ese archivo .jar nuevo pero usando Java 5 o menos .

Más detalles

Tuve un problema similar, lo resolví actualizando mi proguard. consigue tu versión proguard con este comando

 java -jar ~/android-sdks/tools/proguard/lib/proguard.jar 

Obtenga el último archivo progaurd.jar desde aquí ( http://proguard.sourceforge.net )

reemplace el android-sdks / tools / proguard / lib / proguard.jar existente con el nuevo archivo .jar.

Espero que esto te ayude. Si usa java 8, entonces debe actualizar a proguard 5.x coz proguard 4.x no es compatible con java 8.

tuve un problema similar cuando traté de agregar una biblioteca hecha por mí mismo de netbeans a android studio. estableciendo la compatibilidad de origen y destino en el estudio android y el formato fuente / binario en netbeans (¡ambos!) a java 1.7 resolvió el problema.

en el estudio de Android:

Estructura del proyecto -> Módulos / Aplicación -> Propreties -> Fuente y destino a 1.7

en netbeans:

Archivo -> Propiedades del proyecto -> Fuentes -> Formato fuente / binario a 1.7

luego limpia y crea tu netbeans projekt y copia el .jar de “NBProj / dist” a “app / libs”

comparta la solución del caso si solo está instalado Java8, simplemente configure el nivel del comstackdor Java en 1.7 y luego recompile el proyecto para que esté bien.