gpt4 book ai didi

java - Gradle:无法通过 '11.0.2'确定Java版本

转载 作者:行者123 更新时间:2023-12-03 05:21:44 26 4
gpt4 key购买 nike

我发表以下评论:

./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应用程序。

  • 整个系统范围内的 Gradle
    该应用程序由gradle (arguments)调用。
  • gradle-wrapper
    gradle-wrapper特定于每个项目,并且只能使用./gradlew (arguments)命令在项目目录内调用。

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

    但是,失败是由于调用gradle-wrapper( ./gradlew)导致的。您可以检查项目的Gradle包装器版本吗?为此,请在gradlew和gradlew.bat文件所在的目录中的项目文件夹中执行 ./gradlew --version

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

    (project's root folder)/gradle/wrapper/gradle-wrapper.properties



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

    更新2:
    根据OP的更新问题,gradle-wrapper的版本为4.1RC1。
    Gradle added support for JDK 11 in Gradle 5.0。因此,由于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,Gradle项目提供了一个指南( 12),其中包含次要发行版之间的重大更改和不推荐使用的功能,因此您可以逐步更新到最新版本。

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

    [*]正如@lupchiazoem在另一个答案中正确指出的那样,请使用 gradle wrapper --gradle-version=5.1.1(而不是 ./gradlew,因为我最初错误地将其张贴在这里)。原因是Gradle在Java上运行。您可以使用任何有效的Gradle发行版(系统范围内安装的Gradle或gradle-wrapper本身)更新gradle-wrapper。但是,在这种情况下,包装程序与安装的Java版本不兼容,因此您必须使用系统范围的Gradle(aka gradle而不是 ./gradlew)。

    关于java - Gradle:无法通过 '11.0.2'确定Java版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63225630/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com