我发表了以下评论:

./gradlew app:installDebug

只是遇到了日志:

FAILURE: Build failed with an exception.

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

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

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

我的gradle版本是5.1.1:

------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------

Build time:   2019-01-10 23:05:02 UTC
Revision:     3c9abb645fb83932c44e8610642393ad62116807

Kotlin DSL:   1.1.1
Kotlin:       1.3.11
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS:           Mac OS X 10.13.6 x86_64

我不知道如何继续(我尝试过升级/降级,但到目前为止都没有工作)。

更新:当我运行。/gradlew——版本,我得到以下:

FAILURE: Build failed with an exception.

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

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

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

我的…/ gradle /包装/ gradle-wrapper。properties包含以下内容,包括distributionUrl=…/gradle-4.1-rc-1-all.zip:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip

当前回答

对于快速和肮脏的测试来说,最简单的方法就是使用覆盖,例如:

> JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/ ./gradlew build

由于包装器检查JAVA_HOME,您可以在每次运行时选择您想要的任何JAVA_HOME。

其他回答

我在这里也遇到了同样的问题。 在我的情况下,我需要使用旧版本的JDK,我正在使用sdkmanager来管理JDK的版本,因此,我将虚拟机的版本更改为1.8。

sdk use java 8.0.222.j9-adpt

在此之后,应用程序将按预期运行。

我在Windows上运行Gradle。

在我的例子中,我已经在我的系统中有了旧的Gradle版本,并将其设置为“环境变量”。

这就是错误发生的原因。

所以我删除了旧版本,在“环境变量”-路径变量中设置新版本,它开始工作。

在您的系统中有两个不同的Gradle应用程序。

系统级的Gradle 此应用程序由gradle(参数)调用。 的gradle-wrapper gradle-wrapper是特定于每个项目的,并且只能在项目目录内调用,使用./gradlew命令(参数)。

您的系统级gradle版本是5.1.1(如注释中解释的OP,运行命令gradle——version返回版本5.1.1)。

然而,失败是调用gradle-wrapper (./gradlew)的结果。你能检查你的项目的gradle包装版本吗?要做到这一点,在项目文件夹中执行。/gradlew——version,在gradlew和gradlew.bat文件所在的目录中。

更新1: 当运行./gradlew——version failed时,你可以通过打开文件手动检查包装器的版本:

(项目的根文件夹)/gradle/wrapper/gradle-wrapper.properties

一个简单的文本编辑器。内部的“distributionUrl”应该告诉我们包装器的版本是什么。

更新2: 根据OP的更新问题,gradle-wrapper的版本是4.1RC1。 Gradle在Gradle 5.0中增加了对JDK 11的支持。因此,由于4.1RC不支持在JDK 11上运行,这肯定是一个问题。

The obvious way, would be to update your project's gradle-wrapper to version 5.0. However, before updating, try running gradle app:installDebug. This will use your system-wide installed Gradle whose version is 5.1.1 and supports running on Java 11. If this works, then your buildscript (file build.gradle) is not affected by any breaking changes between v.4.1RC1 and v.5.1.1 and you can then update your wrapper by executing from the command line inside your project's folder: gradle wrapper --gradle-version=5.1.1 [*].

如果gradle app:installDebug不能正确执行,那么也许你需要升级你的gradle构建脚本。为了从v.4.1RC1升级到5.1.1,Gradle项目提供了一个指南(1,2),其中包含了小版本之间的重大变化和已弃用的特性,这样你就可以逐步升级到最新版本。

或者,如果出于某种原因你不能或不想升级你的Gradle构建脚本,你总是可以选择将你的Java版本降级到Gradle 4.1RC1支持运行的版本。

[*] As correctly pointed out in the answer by @lupchiazoem, use gradle wrapper --gradle-version=5.1.1 (and not ./gradlew as I had originally posted there by mistake). The reason is Gradle runs on Java. You can update your gradle-wrapper using any working Gradle distribution, either your system-wide installed Gradle or the gradle-wrapper itself. However, in this case your wrapper is not compatible with your installed Java version, so you do have to use the system-wide Gradle (aka gradle and not ./gradlew).

我也遇到过类似的问题。我删除了这些:

库和缓存从。idea文件夹(YourApp > .idea > ..)和 生成文件夹的内容。 然后重建。

*别忘了先备份你的项目*

我通过单击文件->项目结构解决了这个问题,然后将JDK位置更改为使用嵌入式JDK(推荐)