Gradle:无法从“ 11.0.2”确定Java版本

我发表以下评论:

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

回答:

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

  1. 本申请通过援引gradle (arguments)

  2. 的gradle产出,包装是具体到每一个项目,只能调用该项目的目录中,使用命令./gradlew (arguments)

系统范围的gradle版本为5.1.1(如注释中解释的OP,运行命令gradle --version返回的版本为5.1.1)。

但是,失败是由于调用gradle-wrapper(./gradlew)导致的。您可以检查项目的Gradle包装器版本吗?为此./gradlew

--version,请在gradlew和gradlew.bat文件所在的目录中的项目文件夹内执行。

运行./gradlew --version失败,则可以通过打开文件来手动检查包装器的版本:

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

用一个简单的文本编辑器。内部的“ distributionUrl”应告诉我们包装程序的版本。

根据OP的更新问题,gradle-wrapper的版本为4.1RC1。

Gradle 在Gradle 5.0中增加了对JDK 11的支持。因此,由于4.1RC不支持JDK 11,因此这肯定是一个问题。

最明显的方法是将项目的gradle-wrapper更新到5.0版。但是,在更新之前,请尝试运行gradle

app:installDebug。这将使用系统范围内已安装的Gradle,其版本为5.1.1并支持Java11。请查看是否可行。如果是这样,则您的构建脚本(文件build.gradle)不受v.4.1RC1和v.5.1.1之间的任何重大更改的影响,然后可以通过从项目文件夹中的命令行执行来更新包装器:gradle

wrapper --gradle-version=5.1.1[ *]。

如果gradle

app:installDebug无法正确执行,则可能需要升级Gradle构建脚本。从v.4.1RC1更新到5.1.1,该摇篮工程提供了指导(1,2)有重大更改和次要版本之间已过时的功能,这样就可以逐步更新到最新版本。

另外,如果由于某种原因您不能或不想升级Gradle构建脚本,则始终可以选择将Java版本降级为Gradle 4.1RC1支持的版本。

[*]正如@lupchiazoem在另一个答案中正确指出的那样,请使用gradle wrapper --gradle-

version=5.1.1(而不是./gradlew因为我最初错误地张贴在这里)。原因是Gradle在Java上运行。您可以使用任何可用的Gradle发行版(系统范围内安装的Gradle或gradle-

wrapper本身)更新gradle-

wrapper。但是,在这种情况下,包装程序与已安装的Java版本不兼容,因此您必须使用系统范围的Gradle(又名gradle不是./gradlew)。

以上是 Gradle:无法从“ 11.0.2”确定Java版本 的全部内容, 来源链接: utcz.com/qa/402939.html

回到顶部