'android-24'需要JDK 1.8或更高版本进行编译


77

我使用Android Studio,最近收到错误消息:

错误:任务':app:compileDebugJavaWithJavac'的执行失败。compileSdkVersion'android-24'需要JDK 1.8或更高版本进行编译。

但是我已经安装了JDK 1.8:

:\ Users ..> java -version
Java版本“ 1.8.0_91” Java(TM)SE运行时
环境(内部版本1.8.0_91-b15)Java HotSpot(TM)64位服务器VM
(内部版本25.91-b15,混合模式)

如何解决?谢谢


谢谢。现在可以使用了。
TD阮

Answers:


179

在Android Studio中打开:
File>>Project Structure查看JDK位置是否指向您的JDK 1.8目录。

注意:可以使用compileSdkVersion 24


4
不知何故,使用上述解决方案更改为JDK8无效。在每次构建期间,文件->项目结构-> JDK位置都将还原为jdk1.7。@SzelkBaltazár的解决方案为我工作。
石榴石

如前所述,JDK位置恢复为jdk 1.7,@ SzelkBaltazár的解决方案也不起作用。因此,请像在stackoverflow.com/a/35974928/2914140中那样重新定义系统变量,然后关闭Android Studio(并可能重新启动计算机)。jdk.table.xmlstackoverflow.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,但是在执行此操作之前一直使用较旧的jdk:

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

用新的jdk路径替换旧的JDK路径。

现在像魅力一样工作:)


2

仅供参考,我在离子项目中遇到此错误。返回的所有命令都指向正确的JDK,并且正确设置了JAVA_HOME。

我的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)

然后检查Gradle使用的Java版本:

$ 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

我也在Windows的命令行上遇到相同的问题,它显示了相同的提示。

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

检查JDK locationProject 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加入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上,我首先检查了Project Structure,它指向的是旧的1.7 jdk。我关闭了Android Studio,然后重命名了旧的jdks(以及为保持一致性而使用的jre库),仅留下了最新的1.8库。当我重新启动Android Studio并尝试构建应用程序时,它要求我提供Java JDK库,并提供了通往最新的1.8 JDK库的路径。在我的系统上是C:\ Program Files \ Java \ jdk1.8.0_112。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.