我发表了以下评论:

./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

当前回答

我也遇到过类似的问题:我的默认gradle包装器是版本4。在Gradle 5中添加了对更高版本Java的支持。

我已经更新了我的gradlew描述在这里:https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper

TLTD:

./gradlew wrapper --gradle-version 5.6.2

其他回答

以我为例,我试图为一个旧的Unity 3D项目构建和获得APK(这样我就可以在我的Android手机上玩游戏)。我使用的是最新的Android Studio版本,我可以通过Android Studio的SDK管理器下载所有SDK包。SDK包的位置

C:/Users/Onat/AppData/Local/Android/Sdk 

我得到的错误消息是一样的,除了JDK (Java开发工具包)版本“JDK -12.0.2”。JDK位于

C:\Program Files\Java\jdk-12.0.2

Windows中的环境变量为JAVA_HOME: C:\Program Files\Java\jdk-12.0.2

经过3个小时的研究,我发现Unity不支持JDK 10。我的建议是:

Uninstall unwanted JDK if you have one installed already. Head here Login to/Open a Oracle account if not already logged in. Download the older but functional JDK 8 for your computer set-up(32 bit/64 bit, Windows/Linux etc.) Install the JDK. Remember the installation path. If you are using Windows, Open Environment Variables and change Java Path via Right click My Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"] In Unity 3D, press Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221"). Also, in the same pop-up, edit SDK Path. (Get it from Android Studio > SDK Manager > Android SDK > Android SDK Location.) If needed, restart your computer for changes to take effect.

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

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

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

我在Ubuntu 18.04.3 LTS中遇到了同样的问题。在我的例子中,apt安装了gradle 4.4.1版本。已经安装的java版本是11.0.4

我得到的构建消息是

Could not determine java version from '11.0.4'.

当时,大多数在线文档都引用了gradle 5.6版本,所以我做了以下工作:

sudo add-apt-repository ppa:cwchien/gradle
sudo apt update
sudo apt upgrade gradle

然后我重复项目初始化(使用gradle初始化默认值)。之后,./gradlew构建可以正常工作。

我后来读到一个评论,关于java -version输出格式的改变,导致gradle崩溃,这在后来的gradle版本中得到了修复。

我在Windows上也遇到了同样的问题。我的gradle配置是使用JDK1.8,但JAVA_HOME配置为使用另一种JDK。

解决方案:

根据gradle中配置的JDK正确设置JAVA_HOME

导航到Project/gradle/wrapper/gradle-wrapper。属性,并手动更改distributionUrl为distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip,它工作了,希望这有助于某人。