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_HOMEdistributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
回答:
您的系统中有两个不同的Gradle应用程序。
该
本申请通过援引
gradle (arguments)
。在
的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