gradle:无法从“11.0.2”确定java版本

zfycwa2u  于 2021-07-03  发布在  Java
关注(0)|答案(17)|浏览(732)

我运行了以下评论:

./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 --version ,我得到以下信息:

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-wrapper.properties 包含:

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
flmtquvp

flmtquvp16#

在您的系统中有两个不同的gradle应用程序。
全系统渐变
此应用程序由调用 gradle (arguments) .
grad尔 Package 纸
gradle Package 器是特定于每个项目的,只能在项目目录中使用以下命令调用 ./gradlew (arguments) .
您的系统范围的gradle版本是5.1.1(正如op在注解中解释的,运行命令 gradle --version 返回版本5.1.1)。
但是,失败是调用gradle Package 器的结果( ./gradlew ). 你能检查一下你的项目的gradle Package 器版本吗?为此,执行 ./gradlew --version 在项目文件夹中,gradlew和gradlew.bat文件所在的目录中。
更新1:
作为运行 ./gradlew --version 失败,您可以通过打开以下文件手动检查 Package 器的版本:
(项目的根文件夹)/gradle/wrapper/gradle-wrapper.properties
一个简单的文本编辑器。里面的“distributionurl”应该告诉我们 Package 器的版本是什么。
更新2:根据op的更新问题,gradle Package 器的版本是4.1rc1。
gradle在gradle5.0中增加了对jdk 11的支持。因此,由于4.1rc不支持在jdk 11上运行,这肯定是个问题。
显而易见的方法是将项目的gradle Package 器更新到5.0版本。
但是,在更新之前,请尝试运行 gradle app:installDebug . 这将使用系统范围内安装的gradle,其版本为5.1.1,支持在java11上运行。如果这样做有效,则您的buildscript(文件build.gradle)不会受到v.4.1rc1和v.5.1.1之间任何中断更改的影响,然后您可以通过从项目文件夹中的命令行执行来更新 Package 器: gradle wrapper --gradle-version=5.1.1 [*].
如果 gradle app:installDebug 如果无法正确执行,则可能需要升级gradle buildscript。为了从v.4.1rc1升级到5.1.1,gradle项目提供了一个指南(1,2),在次要版本之间提供了中断的更改和不推荐的特性,以便您可以逐步更新到最新版本。
或者,如果出于某种原因不能或不想升级gradle buildscript,您可以选择将java版本降级到gradle 4.1rc1支持运行的版本。
[*]正如@lupchiazoem在回答中正确指出的,使用 gradle wrapper --gradle-version=5.1.1 (而不是 ./gradlew 正如我最初在那里发布的错误)。原因是gradle在java上运行。您可以使用任何可用的gradle发行版更新gradle Package 器,可以是系统范围内安装的gradle,也可以是gradle Package 器本身。但是,在这种情况下, Package 器与已安装的java版本不兼容,因此必须使用系统范围的gradle(aka) gradle 而不是 ./gradlew ).

mi7gmzs6

mi7gmzs617#

我有一个类似的问题:我的违约 gradle wrapper 是版本4.x,而Gradle5中增加了对更高版本java的支持。
我已经更新了我的 gradlew 如下所述:https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:升级\u Package
tltd编号:

./gradlew wrapper --gradle-version 5.6.2

相关问题