'android-24' вимагає компіляції JDK 1.8 або пізнішої версії


77

Я використовую Android Studio і нещодавно отримав помилку:

Помилка: Помилка виконання для завдання ': app: compileDebugJavaWithJavac'. compileSdkVersion 'android-24' вимагає JDK 1.8 або пізнішої версії для компіляції.

Але я вже встановив JDK 1.8:

: \ 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, змішаний режим)

Як це виправити? Дякую


Дякую. Це працює зараз.
TD Nguyen,

Відповіді:


179

У Android Studio відкрийте:
File>> Project Structureперевірте, чи вказує розташування JDK на ваш каталог JDK 1.8.

Примітка: ви можете використовуватиcompileSdkVersion 24


4
Якось, перехід на JDK8 за допомогою наведеного вище рішення не спрацював. Файл-> Структура проекту-> Розташування JDK повертається до jdk1.7 під час кожної збірки. Рішення @Szelk Baltazár спрацювало для мене.
гранат

Як вже було сказано, розташування JDK повертається до jdk 1.7, і рішення @Szelk Baltazár також не працює. Отже, перевизначте системні змінні, як у stackoverflow.com/a/35974928/2914140 , закрийте Android Studio (і, можливо, перезавантажте комп'ютер). Змініть місце, видаливши файл, jdk.table.xmlяк описано в stackoverflow.com/a/38067170/2914140 . Це все так жахливо у світі Java.
CoolMind

9

У мене така сама проблема впродовж днів. Я знайшов рішення, яке працювало від мене у Windows. (Я також встановлюю змінні середовища, але не знаю, чи це потрібно.)

Додайте ці рядки до файлу build.gradle:

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

Джерело: https://code.google.com/p/android/issues/detail?id=203850


2

Я встановив останній jdk, але він використовував старіший, поки я не зробив цього:

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

Замініть старий шлях JDK на новий шлях jdk.

Зараз працює як шарм :)


2

У мене просто була досвідчена помилка з іонним проектом. Всі команди повернулися, вказуючи на правильний JDK, і JAVA_HOME було встановлено правильно.

У моєму PATH був запис до JDK 1.7 \ bin, замінивши його на 1.8 \ bin, який мені це виправили.


0

Я також стикався з тією ж проблемою з командного рядка на своєму Mac, але відповідь полягала в тому, що це JAVA_HOMEбуло замінено. Щоб відстежити, де він перевизначений, спочатку перевірте java з командного рядка:

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

Потім перевірте, яку версію Java використовує 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

На даний момент я все ще не знайшов джерела проблеми. Трохи копав і виявив, що це справді було перевизначено у моєму gradle.propertiesфайлі, хоча воно показувало Java 8, коли я виконував 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

Для виправлення я просто видалив java.homeрядок з gradle.properties. Сподіваємось, це допомагає, якщо хтось інший стикається з такою ж проблемою з командного рядка.


0

У Android Studio відкрийте: Файл> Структура проекту> Розташування SDK> Виберіть jdk1.8.0_101.jdk> Домашня сторінка


0

Я також стикався з тією ж проблемою з командного рядка на моїй Windows, він показує ту саму підказку.

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

перевірити JDK locationв Project Structure.

У Android Studio відкрийте: File>> Project Structureперевірте, чи вказує розташування JDK на ваш каталог JDK 1.8.

Це повинно виглядати так

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

Я вже встановив правильне розташування на JDK.

перевірити версію 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)

перевірити версію 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

Версія JVM має бути 1.8. Щоб це виправити, ми можемо додати у gradle.property In gradle.propertiesв .gradleкаталог у вашому HOME_DIRECTORYнаборі org.gradle.java.home=/path_to_jdk_directory. Як на мене, це як:

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

Щоб перевірити, чи правильно воно встановлено, ми можемо скласти 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

У Windows 10 я спочатку перевірив структуру проекту, і вона вказала на старий 1.7 jdk. Я закрив Android Studio, а потім перейменував старі jdks (і бібліотеки jre для узгодженості), залишивши нову бібліотеку 1.8 в спокої. Коли я перезапустив Android Studio і спробував створити додаток, він попросив у мене бібліотеку Java JDK, і я вказав шлях до новітньої бібліотеки JDK 1.8. У моїй системі це був C: \ Program Files \ Java \ jdk1.8.0_112.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.