我想从命令行而不是从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
答案 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)
就我而言,java
和 javac
有不同的版本。检查并配置:
$ update-alternatives --config javac
和
$ update-alternatives --config java
这个article帮助很大。我看到这篇文章适用于 Windows,但使用 Ubuntu 的人可能会发现这个答案很有用。
答案 3 :(得分:-2)
C://
System Environment Variables
中的/ bin路径
运行程序并检查问题是否已解决?如果仍然出现错误,请继续下一步 System Environment Variables
中的/ bin路径
这将解决此问题。 Lemme知道您是否仍然有错误