'android-24'需要JDK 1.8或更高版本才能编译
我使用Android Studio,最近得到错误:
错误:任务':app:compileDebugJavaWithJavac'的执行失败。 compileSdkVersion'android-24'需要JDK 1.8或更高版本才能编译。
但我已经安装了JDK 1.8:
:\ Users ..> java -version
java版本“1.8.0_91”Java(TM)SE Runtime
环境(构build1.8.0_91-b15)Java HotSpot(TM)64位服务器虚拟机
(build 25.91-b15,混合模式)
如何解决它? 谢谢
在Android Studio中打开:
File
> Project Structure
>查看JDK位置是否指向您的JDK 1.8目录。
注意:你可以使用compileSdkVersion 24
我有几天的同样的问题。 我在Windows上find了一个解决scheme。 (我也设置了环境variables,但是不知道是否需要。)
将这些行添加到build.gradle文件中:
android { ... defaultConfig { ... jackOptions { enabled true } } compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 } }
来源: https : //code.google.com/p/android/issues/detail?id = 203850
我安装了最新的JDK,但它使用的是较旧的,直到我这样做:
app rt-click >> module settings >> sdk location >> (old jdk path)
用新的jdkpathreplace旧的JDKpath。
就像现在的魅力:)
只是一个意外,我有一个离子项目这个错误。 所有的命令都回来了,指向正确的JDK和JAVA_HOME被正确设置。
在我的PATH中有一个条目用于JDK 1.7 \ bin,用1.8 \ bin替代了我。
我也在我的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
在这一点上,我还没有find问题的根源。 做了一点挖掘,发现它确实在我的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
为了解决,我刚从gradle.properties
删除了java.home
行。 希望这有助于其他人从命令行遇到同样的问题。
在Android Studio中打开:文件>项目结构> SDK位置>selectjdk1.8.0_101.jdk>首页
我也遇到了同样的问题,从我的Windows上的命令行,它显示了相同的提示。
Error:Execution failed for task ':app:compileDebugJavaWithJavac'. `compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.`
在“ Project Structure
检查JDK location
。
在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.properties
中添加在你的HOME_DIRECTORY
的.gradle
目录下的HOME_DIRECTORY
设置org.gradle.java.home=/path_to_jdk_directory
。 对我来说,就像是:
org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_91
要validation它是否设置正确,我们可以做一个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
在Windows 10上,我首先检查了项目结构,它指向一个旧的1.7 jdk。 我closures了Android Studio,然后重命名旧的JDK(和JRE库的一致性),留下最新的1.8库单独。 当我重新启动Android Studio并尝试构build应用程序时,它向我请求了Java JDK库,并且给出了最新的1.8 JDK库的path。 在我的系统上是C:\ Program Files \ Java \ jdk1.8.0_112。