2016-06-21 16 views
76

utilizzare Android Studio e recentemente ottenuto l'errore:'Android-24' richiede JDK 1.8 o versione successiva per compilare

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

Ma ho JDK 1.8 già installato:

:\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)

come risolvere il problema vero? Grazie

+0

Grazie. Ora funziona. –

+3

Quali vantaggi con jdk 1.8? – Andreyua

risposta

179

In Android Studio aperto:
File>Project Structure> vedere se i punti JDK posizione nella directory JDK 1.8.

Nota: è possibile utilizzarecompileSdkVersion 24

+4

In qualche modo, il passaggio a JDK8 utilizzando la soluzione di cui sopra non ha funzionato. File-> Struttura del progetto-> La posizione JDK viene ripristinata a jdk1.7 durante ogni build. La soluzione di @Szelk Baltazár ha funzionato per me. – garnet

+0

Come detto prima, la posizione di JDK viene ripristinata su jdk 1.7 e anche la soluzione di @Szelk Baltazár non funziona. Quindi ridefinisci le variabili di sistema come in http://stackoverflow.com/a/35974928/2914140, chiudi Android Studio (e forse riavvia un computer). Cambia posizione eliminando il file 'jdk.table.xml' come descritto in http://stackoverflow.com/a/38067170/2914140. È tutto così terribile in un mondo di Java. – CoolMind

0

ero in corso anche lo stesso problema dalla riga di comando sul mio Mac, ma la risposta è stata che JAVA_HOME stavo sovrascritti. Per rintracciare dove si è sempre ignorato prima java di controllo dalla riga di comando:

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

Poi verificare quale versione di Java che Gradle sta usando:

$ 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 

A questo punto, non avevo ancora trovato la fonte del problema. Ha fatto un po 'di scavo, e ha scoperto che si trattava effettivamente ignorato nel mio file gradle.properties anche se stava mostrando Java 8 quando ho eseguito 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 

Per risolvere, ho appena cancellato la linea java.home da gradle.properties. Speriamo che questo aiuti se qualcun altro è in esecuzione nello stesso problema dalla riga di comando.

9

Ho lo stesso problema per giorni. Ho trovato una soluzione che ha funzionato da me su Windows. (Ho anche impostare le variabili d'ambiente, ma non so se ce n'è bisogno.)

aggiungere queste righe al file di build.gradle:

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

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

+0

questo ha funzionato per me .. grazie al commento di granato – Shachi

2

ho installato più recente JDK ma stava usando il più vecchio fino a quando ho fatto questo:

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

sostituire il vecchio percorso JDK con il nuovo percorso JDK.

funziona come un fascino adesso :)

0

In Android Studio aperto: File> Struttura del progetto> SDK Posizione> Seleziona jdk1.8.0_101.jdk> Inizio

0

Sono stato anche in esecuzione nello stesso problema dalla riga di comando sul mio Windows, mostra lo stesso suggerimento.

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

controllo JDK location in Project Structure.

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

Dovrebbe apparire come

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

ho già impostato la posizione corretta per JDK.

controllo la versione 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) 

di controllo della versione 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 

versione JVM dovrebbe essere 1.8. Per risolvere il problema, è possibile aggiungere la proprietà gradle. in gradle.properties nella directory nel proprio set HOME_DIRECTORYorg.gradle.java.home=/path_to_jdk_directory. Per quanto mi riguarda, è come:

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

Per verificare se è impostato bene, possiamo fare un compito gradle build.

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

Se qualcuno potrebbe aiutarmi a correggere la formattazione di questa risposta, sarà molto apprezzato. –

2

Solo una FYI ho avuto questo errore con un progetto Ionic. Tutti i comandi sono tornati puntando al JDK corretto e JAVA_HOME è stato impostato correttamente.

C'era una voce nel mio PERCORSO in JDK 1.7 \ bin, sostituendo quello con 1.8 \ bin risolto per me.

0

Su Windows 10, per prima cosa ho controllato la struttura del progetto e puntava a un vecchio jdk 1.7. Ho chiuso Android Studio, quindi ho rinominato il vecchio jdks (e le librerie jre per coerenza) lasciando da solo la libreria 1.8 più recente. Quando ho riavviato Android Studio e ho tentato di creare l'applicazione, mi ha chiesto la libreria Java JDK e ho dato il percorso alla più recente libreria JDK 1.8. Sul mio sistema era C: \ Programmi \ Java \ jdk1.8.0_112.

Problemi correlati