Ya sé que esa pregunta ya se ha hecho con mucha frecuencia y las respuestas, pero ninguna de las respuestas que encontré solucionó 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á construida con SDK Android API 19 Platform
con nivel de proyecto 1.7
.
Mi .jar
archivo está dentro de la libs/
carpeta.
Utilizo 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 yo compile fileTree(dir: 'libs', include: ['*.jar'])
también
fuente
Respuestas:
mi
JAVA_HOME
variable 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
Solución # 1: Rápido y sucio
Lo arreglé poniendo mi
JAVA_HOME
espalda en 1.7:Solución # 2: cambie la versión del compilador:
cambie de nuevo a 1.7 para este módulo específico en su build.gradle
fuente
compileOptions.with { sourceCompatibility=JavaVersion.VERSION_1_7 targetCompatibility=JavaVersion.VERSION_1_7 }
Ok, mi mal.
En la sección Project SDK, cuando agrega un
Android SDK
, debe proporcionar elJava SDK
y todos mis Android SDK usan Java 8 como SDK, por lo que crea los archivos de clase con la versión incorrecta, incluso si el nivel del proyecto es1.7
(no sé por qué, supuse que todo fue elegido por nivel de Proyecto).Ahora cambié el SDK (la
java version "1.x.0"
parte).y parece compilarse bien.
La razón que funcionó antes de hoy fue porque mi SDK era
1.8
y noAndroid API x
fuente
En caso de que las personas encuentren que la respuesta de @Marco Acierno no está 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
ajdk1.7.x
. Para la línea de comando, asegure lasjava -version
salidasjava version "1.7.x"
.fuente
Establecer JAVA_HOME de nuevo a 1.7 funcionó para mí.
fuente
cambie toda la versión de Java del módulo a java 1.7 en cada archivo build.grade.
en el complemento que es biblioteca y aplicación
y en java
fuente
Este problema ocurre cuando usa un
.jar
archivo que no utiliza ninguna función de Java 6 o superior, pero que se creó con Java 6 o superior.Si creó ese
.jar
archivo, entonces no necesita cambiar nada enGradle
oProGuard
oCompiler Version
. La solución es muy simple, simplemente compile ese.jar
archivo nuevamente pero usando Java 5 o menos .Más detalles .
fuente
Tuve un problema similar, lo resolví actualizando mi proguard. obtenga su versión proguard con este comando
obtenga el último archivo progaurd.jar desde aquí ( http://proguard.sourceforge.net )
reemplace el archivo android-sdks / tools / proguard / lib / proguard.jar existente con un nuevo archivo .jar.
Espero que esto te ayude. Si usa java 8, debería actualizar a proguard 5.x porque proguard 4.x no es compatible con java 8.
fuente
Tuve un problema similar cuando intenté agregar una biblioteca de netbeans a Android Studio. la configuración de la compatibilidad de origen y destino en android studio y el formato de origen / binario en netbeans (¡ambos!) en java 1.7 resolvió el problema.
en Android Studio:
Estructura del proyecto -> Módulos / Aplicación -> Propiedades -> Fuente y destino a 1.7
en netbeans:
Archivo -> Propiedades del proyecto -> Fuentes -> Formato fuente / binario a 1.7
luego limpie y construya su proyecto netbeans y copie el .jar de "NBProj / dist" a "app / libs"
fuente
comparta la solución del caso si solo está instalado Java8, simplemente configure el nivel del compilador de Java en 1.7 y luego reconstruya el proyecto debería estar bien.
fuente
Recibí el error al usar una biblioteca de terceros. De acuerdo con la pregunta mencionada anteriormente, fue necesario reemplazar la biblioteca de acuerdo con el mensaje de seguimiento de pila anterior:
con la versión apropiada.
De acuerdo con la pregunta,
bananaquery.jar
se reemplazará por la versión compatible con Java.fuente