Pytanie "Android-24" wymaga kompilacji JDK 1.8 lub nowszej


Korzystam z Android Studio i ostatnio mam błąd:

Błąd: Wykonanie nie powiodło się dla zadania ": app: compileDebugJavaWithJavac".   compileSdkVersion 'android-24' wymaga kompilacji JDK 1.8 lub nowszej.

Ale mam już zainstalowany JDK 1.8:

: \ Users ..> java -version
  wersja Java "1.8.0_91" Java Runtime SE
  Środowisko (kompilacja 1.8.0_91-b15) 64-bitowa maszyna wirtualna Java HotSpot (TM)
  (build 25.91-b15, tryb mieszany)

Jak to naprawić? Dzięki


76
2018-06-21 00:04


pochodzenie


Dzięki. Teraz działa. - T D Nguyen
Jakie korzyści z jdk 1.8? - Andreyua


Odpowiedzi:


W Android Studio otwórz:
File > Project Structure > zobacz, czy lokalizacja JDK wskazuje na katalog JDK 1.8.

Uwaga: możesz użyć compileSdkVersion 24


179
2018-06-21 00:16



W jakiś sposób zmiana na JDK8 przy użyciu powyższego rozwiązania nie zadziałała. Plik-> Struktura projektu-> lokalizacja JDK zostaje przywrócona do jdk1.7 podczas każdej kompilacji. Rozwiązanie autorstwa @Szelk Baltazár pracowało dla mnie. - garnet
Jak wspomniano wcześniej, lokalizacja JDK zostaje przywrócona do wersji 1.7, a rozwiązanie @Szelk Baltazár również nie działa. Zmień definicję zmiennych systemowych, jak w stackoverflow.com/a/35974928/2914140, zamknij Android Studio (i może ponownie uruchom komputer). Zmień lokalizację, usuwając plik jdk.table.xml jak opisano w stackoverflow.com/a/38067170/2914140. To wszystko jest straszne w świecie Java. - CoolMind


Mam ten sam problem od wielu dni. Znalazłem rozwiązanie, które działało przede mną w systemie Windows. (Ustawiam także zmienne środowiskowe, ale nie wiem, czy jest to potrzebne).

Dodaj te linie do pliku build.gradle:

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

Źródło: https://code.google.com/p/android/issues/detail?id=203850


9
2018-06-22 06:20



to działało dla mnie .. dzięki komentarzowi granatu - Shachi


Zainstalowałem najnowszy jdk, ale korzystałem ze starszego, dopóki to zrobiłem:

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

Zastąp starą ścieżkę JDK nową ścieżką jdk.

Działa jak urok teraz :)


2
2017-08-02 11:47





Tylko FYI Miałem ten błąd w projekcie jonowym. Wszystkie polecenia wróciły, wskazując właściwy JDK i JAVA_HOME został ustawiony poprawnie.

W mojej zmiennej PATH znajdował się wpis JDK 1.7 \ bin, który zastąpił mi 1.8 / bin.


2
2017-10-28 12:04





Byłem też uruchomiony w tym samym problemie z wiersza poleceń na moim Macu, ale odpowiedź była taka JAVA_HOME został zastąpiony. Aby wyśledzić, gdzie jest nadpisywane najpierw sprawdź java z wiersza poleceń:

$ 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)

Następnie sprawdź, której wersji Java używa Gradle:

$ 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

W tym momencie nadal nie znalazłem źródła problemu. Zrobiłem małe kopanie i odkryłem, że w moim jest to naprawdę przesłonięte gradle.properties plik, mimo że wyświetlał Java 8 po wykonaniu 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

Aby naprawić, właśnie usunąłem java.home linia od gradle.properties. Mam nadzieję, że to pomoże, jeśli ktoś inny jest uruchomiony w tym samym problemie z wiersza poleceń.


0
2018-06-21 17:40





W Android Studio otwórz: Plik> Struktura projektu> Lokalizacja SDK> Wybierz jdk1.8.0_101.jdk> Strona główna


0
2017-08-29 16:22





Byłem również uruchomiony w tym samym problemie z wiersza poleceń w moim systemie Windows, pokazuje tę samą podpowiedź.

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

czek JDK location w Project Structure.

W Android Studio otwórz: File > Project Structure > zobacz, czy lokalizacja JDK   wskazuje na katalog JDK 1.8.

Powinno to wyglądać

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

Już ustawiłem prawidłową lokalizację na JDK.

sprawdź wersję Java

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)

sprawdź wersję gradle

.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

Wersja JVM powinna wynosić 1.8. Aby to naprawić, możemy dodać gradle.property W gradle.properties w .gradle katalog w twoim HOME_DIRECTORY zestaw org.gradle.java.home=/path_to_jdk_directory. Jeśli chodzi o mnie, to jest jak:

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

Aby sprawdzić, czy jest ustawiony prawidłowo, możemy zrobić gradle build zadanie.

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

0
2017-09-27 20:09



Jeśli ktokolwiek mógłby mi pomóc naprawić formatowanie tej odpowiedzi, będzie to bardzo cenne. - Francis Bacon


W systemie Windows 10 najpierw sprawdziłem strukturę projektu i wskazałem stary 1.7 jdk. Zamknąłem program Android Studio, a następnie zmieniłem nazwę starych bibliotek jdks (i jre dla spójności) pozostawiając samą bibliotekę najnowszą 1.8. Po ponownym uruchomieniu Android Studio i próbie zbudowania aplikacji poprosił mnie o bibliotekę Java JDK i podałem ścieżkę do najnowszej biblioteki 1.8 JDK. W moim systemie był to C: \ Program Files \ Java \ jdk1.8.0_112.


0
2018-05-19 15:05