2016-06-19 13 views
21

Dopo aver creato un progetto vuoto in Android Studio e incluso un modulo java puro, che compila e funziona perfettamente da solo, ottengo il seguente errore su ogni singolo classe all'interno di tale modulo:Ottenuto "file di classe non supportato versione 52.0" dopo aver incluso un modulo in un progetto

Error:PARSE ERROR: Error:unsupported class file version 52.0

ho cercato di eseguire il progetto utilizzando il JDK embedded e quello che ho sul mio sistema - JDK 8 (1.8.0_91), il risultato è lo stesso.

Nota questo, che non includono il modulo come .jar biblioteca, è il codice sorgente che sta importando con le seguenti istruzioni:

include ':app', ':my-module' 
project(':my-module').projectDir = new File(settingsDir, '../my-module-java') 
+1

Non credo che Android supporti ancora Java 8. –

+0

@ElliottFrisch Lo so, specificherò la versione di destinazione '1_7'. –

+0

@ Sébastien Forse potresti pubblicare i tuoi file build.gradle per entrambi i moduli e permetterci di controllarlo per te. –

risposta

36

Ottenuto, l'errore era perché non ho specificato le opzioni di compatibilità nel modulo stesso. Ciò significa che se hai installato e utilizzato JDK 8 e il tuo progetto Android utilizza Java 1.7 (che è di default in Android SDK 23 e sotto) e ha un modulo incluso senza alcuna specifica per usare Java 1.7, allora quel modulo verrà compilato con JDK 8 utilizzando Java 1.8 sintassi e ci sarà un errore perché non sono compatibili e compilatore che utilizza Java 1.7 non può analizzare i file di classe che sono stati di mira Java 1.8 e avere la versione 52.

build.gradle- questo file build è per il livello di modulo

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 

} 
+1

Non applico il plugin 'java' ma ho ancora la stessa eccezione –

+0

Ha risolto il problema per me! Sono passato da jre1.8.0_121 a jre7 e infine la mia app è stata compilata. –

+0

Ho dovuto omettere 'apply plugin: 'java'' per evitare https://stackoverflow.com/questions/26861011/android-compile-error-java-plugin-has-been-applied-not-compatible-with -android – OneWorld

3

Lo so, lo specificare versione di destinazione 1_7

il Oracle Compatibility Guide for Java 8 dice (in parte),

la versione di file di classe per Java SE 8 è 52,0 come per la JVM SPECIFICHE zione. I file di classe della versione 52.0 prodotti da un compilatore Java SE 8 non possono essere utilizzati nelle versioni precedenti di Java SE.

Destinazione Java 7 e ricompilazione.

2

ho affrontato errori simili, mentre la costruzione del p rogetto.

Error:PARSE ERROR 
Error:unsupported class file version 52.0 

ho affrontato questi errori dopo che ho passato da Java a Java 1.81.7. Il mio progetto è composto da diverse librerie, 1 modulo app, 3 moduli libreria Android e 2 moduli libreria Java. Non ho modificato nulla nelle librerie Android, ma ho aggiunto le seguenti righe nelle dipendenze dei file build.gradle delle librerie Java.

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

Ha risolto il problema per me. L'errore di analisi era principalmente dovuto al fatto che le classi Java 1.8 non potevano essere analizzate nelle classi Java 1.7.

-2

Ho ricevuto questo errore per la prima volta dopo aver aggiornato Android Studio dalla 2.1 alla 2.2.2, ed ero perplesso perché il mio sistema aveva solo Java 1.7 installato, o almeno così pensavo. Android 2.2.2 installa il proprio Java 1.8 JRE (C: \ Programmi \ Android \ Android Studio \ jre), quindi la necessità di specificare sourceCompatibility e nel build.gradle per le librerie java pure come spiegato sopra.

apply plugin: 'java' 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    sourceCompatibility = 1.7 
    targetCompatibility = 1.7 
} 
+2

non è possibile applicare il plugin java per sapere il progetto Android? –

+0

questa è una libreria java pura utilizzata dal mio progetto Android – steveputz

Problemi correlati