Für 'android-24' ist JDK 1.8 oder höher zum Kompilieren erforderlich

77

Ich benutze Android Studio und habe kürzlich den Fehler erhalten:

Fehler: Ausführung für Task ': app: compileDebugJavaWithJavac' fehlgeschlagen. compileSdkVersion 'android-24' erfordert JDK 1.8 oder höher zum Kompilieren.

Aber ich habe JDK 1.8 bereits installiert:

: \ Users ..> Java-Version
Java-Version "1.8.0_91" Java (TM) SE-Laufzeitumgebung
(Build 1.8.0_91-b15) Java HotSpot (TM) 64-Bit-Server-VM
(Build 25.91-b15, gemischter Modus)

Wie man es repariert? Vielen Dank

TD Nguyen
quelle
Vielen Dank. Es funktioniert jetzt.
TD Nguyen

Antworten:

179

Öffnen Sie in Android Studio:
File>> Project StructureÜberprüfen Sie, ob der JDK-Speicherort auf Ihr JDK 1.8-Verzeichnis verweist.

Hinweis: Sie können verwendencompileSdkVersion 24

Juan Cruz Soler
quelle
4
Irgendwie funktionierte das Wechseln zu JDK8 mit der oben genannten Lösung nicht. Datei-> Projektstruktur-> JDK-Speicherort wird bei jedem Build auf jdk1.7 zurückgesetzt. Die Lösung von @Szelk Baltazár hat für mich funktioniert.
Granat
Wie bereits erwähnt, wird der JDK-Speicherort auf JDK 1.7 zurückgesetzt, und die Lösung von @Szelk Baltazár funktioniert ebenfalls nicht. Definieren Sie Systemvariablen wie in stackoverflow.com/a/35974928/2914140 neu , schließen Sie Android Studio (und starten Sie möglicherweise einen Computer neu). Ändern Sie den Speicherort, indem Sie die Datei jdk.table.xmlwie unter stackoverflow.com/a/38067170/2914140 beschrieben löschen . In einer Java-Welt ist alles so schrecklich.
CoolMind
9

Ich habe seit Tagen das gleiche Problem. Ich habe eine Lösung gefunden, die unter Windows funktioniert hat. (Ich habe auch Umgebungsvariablen festgelegt, weiß aber nicht, ob sie benötigt werden.)

Fügen Sie diese Zeilen zur Datei build.gradle hinzu:

android {
     ...
     defaultConfig {
          ...
          jackOptions {
              enabled true
          }
     }
     compileOptions {
         targetCompatibility 1.8
         sourceCompatibility 1.8
     }
}

Quelle: https://code.google.com/p/android/issues/detail?id=203850

Szelk Baltazár
quelle
2

Ich habe das neueste JDK installiert, aber es wurde das ältere verwendet, bis ich dies tat:

app rt-click >> module settings >> sdk location >> (old jdk path)

Ersetzen Sie den alten JDK-Pfad durch Ihren neuen JDK-Pfad.

Funktioniert jetzt wie ein Zauber :)

Pawan
quelle
2

Nur zu Ihrer Information, ich hatte diesen Fehler bei einem Ionic-Projekt. Alle Befehle zeigten auf das richtige JDK und JAVA_HOME wurde korrekt eingestellt.

In meinem PFAD gab es einen Eintrag für JDK 1.7 \ bin, der durch den durch 1.8 \ bin ersetzten Eintrag für mich behoben wurde.

Stevo
quelle
0

Ich hatte auch das gleiche Problem über die Befehlszeile auf meinem Mac, aber die Antwort war, dass JAVA_HOMEes überschrieben wurde. Um herauszufinden, wo es überschrieben wird, überprüfen Sie zuerst Java über die Befehlszeile:

$ java -version
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

Überprüfen Sie dann, welche Java-Version Gradle verwendet:

$ gradle -version

------------------------------------------------------------
Gradle 2.13
------------------------------------------------------------

Build time:   2016-04-25 04:10:10 UTC
Build number: none
Revision:     3b427b1481e46232107303c90be7b05079b05b1c

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_92 (Oracle Corporation 25.92-b14)
OS:           Mac OS X 10.11.5 x86_64

Zu diesem Zeitpunkt hatte ich die Ursache des Problems noch nicht gefunden. Habe ein wenig gegraben und festgestellt, dass es tatsächlich in meiner gradle.propertiesDatei überschrieben wurde , obwohl es Java 8 zeigte, als ich es ausführte gradle -version:

org.gradle.daemon=true
org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:-UseSplitVerifier -Xms512m -Xmx6144m

Zur Behebung habe ich gerade die java.homeZeile aus gelöscht gradle.properties. Hoffentlich hilft dies, wenn jemand anderes über die Befehlszeile auf dasselbe Problem stößt.

Bradford2000
quelle
0

Öffnen Sie in Android Studio: Datei> Projektstruktur> SDK-Speicherort> Wählen Sie jdk1.8.0_101.jdk> Startseite aus

Mihir Vaghela
quelle
0

Ich habe auch das gleiche Problem über die Befehlszeile unter Windows festgestellt, es zeigt den gleichen Hinweis.

Error:Execution failed for task ':app:compileDebugJavaWithJavac'. `compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.`

Check JDK locationin Project Structure.

Öffnen Sie in Android Studio: File>> Project StructureÜberprüfen Sie, ob der JDK-Speicherort auf Ihr JDK 1.8-Verzeichnis verweist.

Es sollte so aussehen

JDK Location
C:\Program Files\Java\jdk1.8.0_91

Ich habe bereits den richtigen Speicherort auf JDK eingestellt.

Überprüfen Sie die Java-Version

D:\AndroidSelfTrainingProject\CustomBuildIdDemo>java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

Überprüfen Sie die Gradle-Version

.D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle -v

------------------------------------------------------------
Gradle 2.10
------------------------------------------------------------

Build time:   2015-12-21 21:15:04 UTC
Build number: none
Revision:     276bdcded730f53aa8c11b479986aafa58e124a6

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_79 (Oracle Corporation 24.79-b02)
OS:           Windows 7 6.1 amd64

Die JVM-Version sollte 1.8 sein. Um dies zu beheben, können wir die gradle.property In gradle.propertiesim .gradleVerzeichnis in Ihrem HOME_DIRECTORYSet hinzufügen org.gradle.java.home=/path_to_jdk_directory. Was mich betrifft, ist es wie:

org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_91

Um zu überprüfen, ob es richtig eingestellt ist, können wir eine gradle buildAufgabe erstellen.

D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon
: https://docs.gradle.org/2.10/userguide/gradle_daemon.html.

To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
Francis Bacon
quelle
Wenn mir jemand helfen könnte, die Formatierung dieser Antwort zu korrigieren, wird dies sehr geschätzt.
Francis Bacon
0

Unter Windows 10 habe ich zuerst die Projektstruktur überprüft und sie zeigte auf ein altes 1.7-JDK. Ich habe Android Studio geschlossen und dann die alten JDKS (und JRE-Bibliotheken aus Gründen der Konsistenz) umbenannt, wobei die neueste 1.8-Bibliothek in Ruhe gelassen wurde. Als ich Android Studio neu startete und versuchte, die Anwendung zu erstellen, fragte ich nach der Java JDK-Bibliothek und gab den Pfad zur neuesten 1.8 JDK-Bibliothek an. Auf meinem System war es C: \ Programme \ Java \ jdk1.8.0_112.

scvblwxq
quelle