wake-up-neo.com

"Nicht unterstützte Klassendatei-Version 52.0" erhalten, nachdem ein Modul in ein Projekt eingefügt wurde

Nachdem ich ein leeres Projekt in Android Studio erstellt und ein reines Java-Modul hinzugefügt habe, das von selbst kompiliert wird und perfekt funktioniert, erhalte ich bei jeder einzelnen Klasse in diesem Modul die folgende Fehlermeldung:

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

Ich habe versucht, das Projekt mit dem eingebetteten JDK und dem auf meinem System vorhandenen JDK 8 (1.8.0_91) auszuführen. Das Ergebnis ist dasselbe.

Beachten Sie, dass ich das Modul nicht als .jar-Bibliothek einbinde. Es handelt sich dabei um Quellcode, der mit der folgenden Anweisung importiert wird:

include ':app', ':my-module'
project(':my-module').projectDir = new File(settingsDir, '../my-module-Java')
23
Sébastien

Verstanden, der Fehler war, weil ich im Modul selbst keine Kompatibilitätsoptionen angegeben habe. Das bedeutet, wenn Sie JDK 8 installiert haben und verwenden und Ihr Android-Projekt Java 1.7 verwendet (standardmäßig im Android SDK 23 und darunter), und wenn ein Modul ohne Angabe von Java 1.7 enthalten ist, wird dieses Modul mit kompiliert JDK 8 verwendet Java 1.8-Syntax und es wird ein Fehler angezeigt, da sie nicht kompatibel sind und Compiler, die Java 1.7 verwenden, keine Klassendateien analysieren können, die auf Java 1.8 abzielen und die Version 52 haben.

build.gradle - Diese Builddatei 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

}
38
Sébastien

Ich weiß, ich gebe Zielversion 1_7

Das Oracle-Kompatibilitätshandbuch für Java 8 sagt (teilweise),

Die Klassendateiversion für Java SE 8 ist gemäß der JVM-Spezifikation 52.0. Klassendateien der Version 52.0, die von einem Java SE 8-Compiler erstellt wurden, können in früheren Versionen von Java SE nicht verwendet werden.

Richten Sie Java 7 ein und kompilieren Sie es erneut. 

3
Elliott Frisch

Beim Erstellen des Projekts sind ähnliche Fehler aufgetreten.

Error:PARSE ERROR
Error:unsupported class file version 52.0

Ich bin diesen Fehlern begegnet, nachdem ich von Java 1.8 auf Java 1.7 gewechselt habe. Mein Projekt besteht aus mehreren Bibliotheken, 1 App-Modul, 3 Android-Bibliotheksmodulen und 2 Java-Bibliotheksmodulen. Ich habe nichts an Android-Bibliotheken geändert, sondern die folgenden Zeilen in Abhängigkeiten von build.gradle-Dateien von Java-Bibliotheken hinzugefügt.

sourceCompatibility = 1.7
targetCompatibility = 1.7

Es hat das Problem für mich gelöst. Fehler beim Analysieren waren hauptsächlich darauf zurückzuführen, dass die Java 1.8-Klassen nicht in Java 1.7-Klassen analysiert werden konnten.

2
Nagaraju Gajula