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

时间:2016-06-21 00:04:45

标签: java android android-studio

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

  

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

但我已经安装了JDK 1.8:

  

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

如何解决?感谢

8 个答案:

答案 0 :(得分:179)

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

注意:您可以使用compileSdkVersion 24

答案 1 :(得分: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 :(得分:2)

我安装了最新的jdk但它使用的是较旧的jdk,直到我这样做了:

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

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

现在就像魅力一样:)

答案 3 :(得分:2)

仅仅是一个FYI我有一个离子项目的错误。所有命令都返回指向正确的JDK并正确设置了JAVA_HOME。

在我的PATH中有一个条目到JDK 1.7 \ bin,用1.8 \ bin替换它为我修复它。

答案 4 :(得分: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文件覆盖了,即使它在我执行gradle -version时显示了Java 8:

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行。希望如果其他人从命令行遇到同样的问题,这会有所帮助。

答案 5 :(得分:0)

在Android Studio中打开: 文件>项目结构> SDK位置>选择jdk1.8.0_101.jdk>家

答案 6 :(得分: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 位于gradle.properties.gradle的{​​{1}}目录中的HOME_DIRECTORY。至于我,它就像:

org.gradle.java.home=/path_to_jdk_directory

要验证它是否设置正确,我们可以进行org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_91 任务。

gradle build

答案 7 :(得分:0)

在Windows 10上,我首先检查了项目结构,它指向一个旧的1.7 jdk。我关闭了Android Studio,然后重命名了旧的jdks(和jre库以保持一致性),只剩下最新的1.8库。当我重新启动Android Studio并尝试构建应用程序时,它向我询问了Java JDK库,并给出了最新的1.8 JDK库的路径。在我的系统上它是C:\ Program Files \ Java \ jdk1.8.0_112。