android - trata - Mala clase de archivo de magia o versión
video viral de la moto (9)
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 compilación:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
y en dependencies
tengo:
compile files(''libs/bananaquery.jar'')
La biblioteca está compilada 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"
compilar archivos podría ser inútil ya que he compile fileTree(dir: ''libs'', include: [''*.jar''])
también
Configurar JAVA_HOME de nuevo en 1.7 me funcionó.
En caso de que las personas encuentren que la respuesta de @Marco Acierno es poco clara, la solución es asegurarse de que está compilando 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"
.
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 .
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"
).
y parece compilar bien.
La razón por la que funcionaba antes de hoy era porque mi SDK era 1.8
y no Android API x
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.
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
comparta la solución del caso si solo está instalado Java8, simplemente configure el nivel del compilador Java en 1.7 y luego recompile el proyecto para que esté bien.
mi variable JAVA_HOME
cambió a Java 1.8 y recibí este mensaje de error al compilar 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 compilador:
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
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"