Android-无法在JRE上进行编译-确保Gradle在JDK而非JRE上运行

时间:2019-01-07 15:44:54

标签: java android android-gradle gradlew

我想从命令行而不是从Android Studio编译我的应用程序。 当我从Android Studio将其启动到设备/仿真器时,我的应用程序运行完美,但是当我尝试这样做时:

gradlew build

我明白了:

> Task :app:kaptGenerateStubsReleaseKotlin FAILED
Caught an exception trying to connect to Kotlin Daemon
org.gradle.api.GradleException: Kotlin could not find the required JDK tools in the Java installation 'C:\Program Files (x86)\Java\jre1.8.0_191' used by Gradle. Make sure Gradle is running on a JDK, not JRE.
        at org.jetbrains.kotlin.gradle.tasks.JarSearchingUtilKt.findToolsJar(jarSearchingUtil.kt:95)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:23)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment$toolsJar$2.invoke(GradleCompilerEnvironment.kt:17)
        at kotlin.SynchronizedLazyImpl.getValue(Lazy.kt:131)
        ...

这是我的JAVA_HOME env var:

JAVA_HOME=C:\Program Files (x86)\Java\jre1.8.0_191

它实际上是一个JRE(而不是JDK),但是,当我通过JDK更改环境变量时,如下所示:

JAVA_HOME=C:\Program Files\Java\jdk-11.0.1    

然后我启动:

gradlew build

然后我得到:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.1'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

4 个答案:

答案 0 :(得分:2)

它可能抱怨您的gradle仅与较低的JDK版本兼容,而您正在尝试使用JDK 11版本。

简短的答案是-下载一个JDK 1.8.something版本并尝试使用它,替代的(可能是更好的长期)答案是将gradle版本升级到最新版本(即与JDK 11兼容的版本)。

编辑:因此Google表示您至少需要使用Gradle 5.0才能使用JDK 11:)

答案 1 :(得分:1)

您必须使用JDK 8,但您正在使用JDK11。

答案 2 :(得分:-1)

就我而言,javajavac 有不同的版本。检查并配置:

 $ update-alternatives --config javac

 $ update-alternatives --config java

这个article帮助很大。我看到这篇文章适用于 Windows,但使用 Ubuntu 的人可能会发现这个答案很有用。

答案 3 :(得分:-2)

  1. gradle.org下载成绩 或从services.gradle.org
  2. 下载
  3. 将下载的文件解压缩到C://
  4. 更新System Environment Variables中的/ bin路径 运行程序并检查问题是否已解决?如果仍然出现错误,请继续下一步
  5. 下载 Java SE运行时环境8u261 here
  6. 更新System Environment Variables中的/ bin路径 这将解决此问题。 Lemme知道您是否仍然有错误