2016-06-21 12 views
76

Używam Android Studio i niedawno dostał błąd:'android-24' wymaga JDK 1.8 lub nowszej kompilacji

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

Ale mam JDK 1.8 zainstalowany już:

:\Users..>java -version
java version "1.8.0_91" Java(TM) SE Runtime
Environment (build 1.8.0_91-b15) Java HotSpot(TM) 64-Bit Server VM
(build 25.91-b15, mixed mode)

Jak naprawić to? Dzięki

+0

Dzięki. Teraz działa. –

+3

Jakie korzyści z jdk 1.8? – Andreyua

Odpowiedz

179

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

Uwaga: można użyć compileSdkVersion 24

+4

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

+0

Jak już powiedziano, lokalizacja JDK zostaje przywrócona do wersji 1.7, a rozwiązanie @Szelk Baltazár również nie działa. Zmień definicję zmiennych systemowych na http://stackoverflow.com/a/35974928/2914140, zamknij system Android Studio (i może ponownie uruchom komputer). Zmień lokalizację, usuwając plik 'jdk.table.xml', jak opisano w http://stackoverflow.com/a/38067170/2914140. To wszystko jest straszne w świecie Java. – CoolMind

0

ja również pracuje w tym samym numerze z wiersza polecenia na moim Macu, ale odpowiedź była, że ​​JAVA_HOME był już nadpisane. Aby wyśledzić, gdzie jest coraz nadpisane najpierw sprawdzić 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 sprawdzić, która wersja Java że Gradle używa:

$ gradle -version 

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

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

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 ja wciąż nie miałem znalazłem źródło problemu. Czy trochę kopania, i okazało się, że to rzeczywiście nadpisane w moim pliku gradle.properties mimo że pokazywał Java 8 kiedy wykonywane 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 rozwiązać, po prostu usunięte z linii java.home od gradle.properties. Mam nadzieję, że to pomoże, jeśli ktoś inny jest uruchomiony w tym samym problemie z wiersza poleceń.

9

Mam taki sam problem przez kilka dni. Znalazłem rozwiązanie, które działało przede mną w systemie Windows. (I również ustawić zmienne środowiskowe, ale nie wiem, czy jest to potrzebne).

Dodaj te linie do build.gradle plik:

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

+0

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

2

Zainstalowałem najnowszą JDK ale korzystał ze starszego, dopóki to zrobiłem:

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

Zamień starą ścieżkę JDK na nową ścieżkę jdk.

działa jak czar teraz :)

0

w Android Studio otwarte: Plik> Struktura projektu> SDK Location> Wybierz jdk1.8.0_101.jdk> Home

0

ja również pracuje w tym samym numerze 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.` 

check JDK location w Project Structure.

In Android Studio open: File >Project Structure > see if JDK location points to your JDK 1.8 directory.

To powinno wyglądać

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

już ustawić prawidłową lokalizację JDK.

Sprawdzanie wersji 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ź Gradle wersja

.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 powinno być 1,8. Aby to naprawić, możemy dodać w gradle.property w gradle.properties w katalogu .gradle w swoim zestawie HOME_DIRECTORYorg.gradle.java.home=/path_to_jdk_directory. Jak dla mnie, to jest jak:

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

Aby sprawdzić, czy ustawiony jest w porządku, możemy dokonać 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

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

2

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 ścieżce był wpis JDK 1.7 \ bin, który zastąpił mi 1,8 \ bin.

0

W systemie Windows 10 najpierw sprawdziłem strukturę projektu i wskazałem stary plik 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.

Powiązane problemy