Tiene "versión de archivo de clase no compatible 52.0" después de incluir un módulo en un proyecto
Después de crear un proyecto vacío dentro de Android Studio e incluir un módulo java puro, que compila y funciona perfectamente por sí solo, obtengo el siguiente error en cada clase del módulo:
Error:PARSE ERROR: Error:unsupported class file version 52.0
- Cómo mostrar / ocultar el teclado virtual sin animación (por ejemplo, fade) en Java?
- ¿Cuál es el formato de hora para esta "fecha": "2014-08-20 00:00:00 -0500"?
- "No pudo encontrar el error com_facebook_android.apk" al ejecutar el proyecto de Android
- Programaticamente encuentre imágenes trémulas o fuera de foco
- Cola sin bloqueo de solicitudes HTTP POST con persistencia
He intentado ejecutar el proyecto utilizando el JDK incorporado y el que tengo en mi sistema – JDK 8 (1.8.0_91), el resultado es el mismo.
Tenga en cuenta que no incluyo el módulo como .jar
, es el código fuente que importa con la siguiente instrucción:
include ':app', ':my-module' project(':my-module').projectDir = new File(settingsDir, '../my-module-java')
- Android / Java Regex para eliminar ceros adicionales de sub-cadenas
- Java - ¿Tendrá beneficios el código inlining?
- Bucle eficiente a través de la lista de Java
- GestureDetector en libgdx
- Androide. Reemplazar * carácter de cadena
- Java / Android: clases locales anónimas vs clases nombradas
- Actividad se ha filtrado ventana com.android.internal.policy.impl.PhoneWindow$DecorView@46029dd0
- Anotación personalizada de Java y carga dinámica
Lo tengo, el error fue porque no especifique las opciones de compatibilidad en el propio módulo. Esto significa que si ha instalado y utilizando JDK 8 y su proyecto android utiliza Java 1.7 (que es por defecto en Android SDK 23 y siguientes) y tiene un módulo incluido sin ninguna especificación para utilizar Java 1.7, entonces ese módulo será compilado con JDK 8 utilizando la sintaxis de Java 1.8 y habrá un error porque no son compatibles y el compilador que utiliza Java 1.7 no puede analizar los archivos de clase que estaban apuntando a Java 1.8 y tienen la versión 52.
Build.gradle – este archivo de compilación es para nivel de módulo
apply plugin: 'java' buildscript { tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') // Your libraries here }
Sé, especifico la versión de destino 1_7
La Guía de Compatibilidad de Oracle para Java 8 dice (en parte)
La versión del archivo de clase para Java SE 8 es 52.0 según la Especificación de JVM. Los archivos de clase de la versión 52.0 producidos por un compilador Java SE 8 no se pueden utilizar en versiones anteriores de Java SE.
Meta Java 7 y recompile.
He enfrentado errores similares mientras construía el proyecto.
Error:PARSE ERROR Error:unsupported class file version 52.0
Me enfrenté a estos errores después de haber cambiado de Java 1.8
a Java 1.7
. Mi proyecto consta de varias bibliotecas, 1 módulo de aplicación, 3 módulos de biblioteca de Android y 2 módulos de biblioteca de Java. No build.gradle
nada en las bibliotecas de Android, pero añadí las siguientes líneas en las dependencias de los archivos build.gradle
de las bibliotecas Java.
sourceCompatibility = 1.7 targetCompatibility = 1.7
Resolvió el problema para mí. El error de análisis se debió principalmente a que las clases Java 1.8 no se podían analizar en clases Java 1.7.
Recibí este error por primera vez después de actualizar Android Studio desde 2.1 a 2.2.2, y me quedé perplejo porque mi sistema sólo tenía Java 1.7 instalado, o eso pensé. Resulta que Android 2.2.2 instala su propio Java 1.8 JRE (C: \ Archivos de programa \ Android \ Android Studio \ jre), por lo que la necesidad de especificar sourceCompatibility
y targetCompatibility
en build.gradle para las bibliotecas java puras como se explicó anteriormente.
apply plugin: 'java' dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') sourceCompatibility = 1.7 targetCompatibility = 1.7 }
- Anulación de registro de GCM causando que la aplicación se bloquee
- Filtrado de ruido de datos del acelerómetro