2016-06-19 3 views
21

Nachdem ich ein leeres Projekt in Android Studio erstellt habe und ein reines Java-Modul eingebaut habe, das perfekt kompiliert und funktioniert, bekomme ich den folgenden Fehler bei jedem einzelnen Klasse innerhalb dieses Moduls:Hat nach dem Einfügen eines Moduls in ein Projekt eine "nicht unterstützte Klassendatei Version 52.0" erhalten

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

ich habe versucht, das Projekt mit dem eingebetteten JDK und die, die ich habe auf meinem System laufen zu lassen - JDK 8 (1.8.0_91), das Ergebnis ist das gleiche.

Hinweis dies, dass ich nicht das Modul als .jar Bibliothek enthalten, ist es Quellcode, mit folgenden Anweisung importiert:

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

Ich glaube nicht, Android unterstützt Java 8 noch. –

+0

@ElliottFrisch Ich weiß, ich gebe die Zielversion '1_7' an. –

+0

@ Sébastien Vielleicht könnten Sie Ihre Build.Gradle-Dateien für beide Module posten und lassen Sie uns das für Sie überprüfen. –

Antwort

36

Verstanden, der Fehler lag daran, dass ich keine Kompatibilitätsoptionen im Modul selbst angegeben habe. Das bedeutet, wenn Sie JDK 8 installiert und verwendet haben und Ihr Android-Projekt Java 1.7 verwendet (standardmäßig im Android SDK 23 und darunter) und ein Modul ohne Spezifikation enthält, um Java 1.7 zu verwenden, dann wird dieses Modul mit kompiliert JDK 8 unter Verwendung von Java 1.8 Syntax und es wird ein Fehler sein, weil sie nicht kompatibel und Compiler sind, die Java verwendet 1.7 kann nicht Klassendateien analysieren, die Java-Targeting wurden 1,8 und haben die Version 52.

build.gradle- diese Build-Datei ist für Modulebene

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

Ich nicht 'Java-Plugin' anwenden, aber immer noch die gleiche Ausnahme –

+0

Es behebt das Problem für mich! Ich wechselte von jre1.8.0_121 zu jre7 und meine App kompilierte schließlich. –

+0

Ich musste 'apply plugin: 'java'' weglassen, um https://stackoverflow.com/questions/26861011/android-compile-error-java-plugin-has-been-applied-not-compatible-with zu vermeiden -android – OneWorld

3

Ich weiß, ich fest, Zielversion 1_7

die Oracle Compatibility Guide for Java 8 sagt (teilweise),

die Klassendatei-Version für Java SE 8 ist 52,0 gemäß der JVM Technische da tion. Version 52.0-Klassendateien, die von einem Java SE 8-Compiler erstellt wurden, können in früheren Versionen von Java SE nicht verwendet werden.

Ziel Java 7 und neu kompilieren.

2

ich ähnliche Fehler konfrontiert habe, während die p Bau Projekt.

Error:PARSE ERROR 
Error:unsupported class file version 52.0 

stand ich diese Fehler, nachdem ich von Java 1.8 auf Java 1.7 gewechselt haben. Mein Projekt besteht aus mehreren Bibliotheken, 1 App-Modul, 3 Android-Bibliotheksmodulen und 2 Java-Bibliotheksmodulen. Ich habe nichts in Android-Bibliotheken geändert, aber die folgenden Zeilen in Abhängigkeiten von build.gradle Dateien von Java-Bibliotheken hinzugefügt.

sourceCompatibility = 1.7 
targetCompatibility = 1.7 

Es löste das Problem für mich. Der Parsing-Fehler lag hauptsächlich daran, dass die Java 1.8-Klassen nicht in Java 1.7-Klassen geparst werden konnten.

-2

Ich habe diesen Fehler zum ersten Mal nach der Aktualisierung von Android Studio von 2.1 auf 2.2.2, und war verwirrt, weil mein System nur Java 1.7 installiert hatte, oder so dachte ich. Es stellt sich heraus, dass Android 2.2.2 sein eigenes Java 1.8 JRE installiert (C: \ Programme \ Android \ Android Studio \ jre), daher müssen sourceCompatibility und im build.gradle für reine Java-Bibliotheken angegeben werden, wie oben erklärt.

apply plugin: 'java' 

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

können Sie Java-Plugin für Android-Projekt nicht anwenden wissen? –

+0

Dies ist eine reine Java-Bibliothek von meinem Android-Projekt verwendet – steveputz

Verwandte Themen