当前位置: 首页 > 面试题库 >

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

万嘉熙
2023-03-14
问题内容

我发表以下评论:

./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这个-包装
    的gradle产出,包装是具体到每一个项目,只能调用该项目的目录中,使用命令./gradlew (arguments)

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

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

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

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

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

更新2: 根据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同步失败:无此类属性:类:org.gradle.api.attributes.Usage FOR_RUNTIME有关更多详细信息,请参阅IDE日志(帮助|显示日志)(571毫秒) 摇篮属性: 建立gradle项目 问题答案: 您还应该删除Java JDK。只需运行以

  • 我遵循了React本机错误:“无法从'9.0.1'确定java版本。”并更改为 在project_path/android/gradle/wrapper/gradle-wrapper.properties中 但这并没有解决我的问题,它显示了一个新的错误,不能添加任务“wrapper”,因为具有该名称的任务已经存在。

  • 我正在使用Mac OS(Mojave)和Android Studio 3.2.1。我正在尝试使用Fastlane工具进行截图。 当我运行时:我得到以下错误: > FAILURE:构建失败,但有一个异常。 出了什么问题: 无法从“11.0.1”确定java版本。 试试看: 使用--stack跟踪选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以

  • 我能够从Android Studio构建我的Android项目。然而,当我尝试运行gradlew命令时,我遇到了以下错误。我如何解决这个问题? 这是我的Java版本: