我正在使用Kotlin开发一个Android应用程序。我通过命令行运行kotlin linter ./gradlew klint 但它给了我一个错误:
Gradle 4.4需要运行Java 7或更高版本。您目前正在使用Java 6.
当我检查项目结构时,我使用的是嵌入式JDK 我还将android studio更新到最新版本。我不知道如何将嵌入式JDK更新到最新版本。
java version
“1.6.0_65”Java(TM)SE运行时环境(版本1.6.0_65-b14-468)Java HotSpot(TM)64位服务器VM(版本20.65-b04-468,混合模式)
which java
- / usr / bin / java
echo $PATH
- /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/Library/Android/sdk/platform-tools
echo $JAVA_HOME
- 空
答案 0 :(得分:1)
最新的OpenJDK 的副本与Android Studio 2.2及更高版本捆绑在一起,这是我们建议您用于Android项目的JDK版本。
https://developer.android.com/studio/intro/studio-config.html#jdk
但是,这仅用于在Android Studio 中构建您的应用,而不是来自gradlew
的终端,否则,它将使用您操作系统上的任何内容' s $PATH
变量。
为了使用嵌入式JDK,您至少需要设置JAVA_HOME
,例如,
export JAVA_HOME=/path/to/AndroidStudio/jdk # TODO: Find this
./gradlew
但我的建议是使用操作系统的机制来安装Java。
为了便于Java库管理(在Linux和Mac上),您可以尝试使用sdkman
答案 1 :(得分:1)
通过添加以下内容解决了该问题:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
在PATH变量的开头。我发现的是:有三个java位置。
/usr/bin/java
)/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
)/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/
)在我的情况下,gradlew
总是使用来自MAC的java(点号1)。
因此,当我在路径变量的开头添加“从oracle(第2点)下载的java”时,它开始使用来自oracle和gradlew命令的那个。
答案 2 :(得分:0)
gradle.properties可以更新为指向Android Studio随附的嵌入式JDK。
org.gradle.java.home = / Applications / Android Studio.app/Contents/jre/jdk/Contents/Home