les*_*958 83 java gradle gradlew
我发表了以下评论:
./gradlew app:installDebug
Run Code Online (Sandbox Code Playgroud)
只有满足日志:
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
Run Code Online (Sandbox Code Playgroud)
我的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
Run Code Online (Sandbox Code Playgroud)
我不确定如何继续(我尝试升级/降级,但到目前为止没有任何工作).
更新:当我跑步时./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
Run Code Online (Sandbox Code Playgroud)
我的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
Run Code Online (Sandbox Code Playgroud)
try*_*man 81
您的系统中有两种不同的Gradle应用程序.
第一个是系统范围的Gradle,由gradle (arguments)第二个是gradle-wrapper,它是特定于每个项目的.它只能使用命令在项目目录中调用./gradlew (arguments).您的系统范围的gradle版本是5.1.1(正如OP在评论中解释的那样,这是通过运行获得的gradle --version).
但是,失败是调用gradle-wrapper的结果.你能检查一下你的项目的gradle包装版本吗?为此,请./gradlew在项目文件夹中执行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版.但是,在更新之前,请尝试运行./gradlew --version.这将使用您的系统范围安装的Gradle,其版本为5.1.1并支持Java 11.请查看是否有效.如果是这样,那么你的buildscript(文件的build.gradle)不受v.4.1RC1和V.5.1.1之间的任何重大更改,然后你可以从你的项目的文件夹中的命令行执行更新您的包装:gradle app:installDebug.
如果gradle wrapper --gradle-version=5.1.1无法正确执行,那么您可能需要升级Gradle构建脚本.从v.4.1RC1更新到5.1.1,该摇篮工程提供了指导(1,2)有重大更改和次要版本之间已过时的功能,这样就可以逐步更新到最新版本.
或者,如果由于某种原因您不能或不想升级Gradle构建脚本,您始终可以选择将Java版本降级为Gradle 4.1RC1支持的版本.
lup*_*oem 27
由于distributionUrl仍然指向旧版本,升级包装使用:
gradle wrapper --gradle-version 5.1.1
注意:使用gradle与否gradlew
Man*_*ger 22
gradle/wrapper/gradle-wrapper.properties使用以下版本更新为我修复了它:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
Run Code Online (Sandbox Code Playgroud)
cra*_*raq 10
tl; dr:通过运行降级javaupdate-alternatives
我的系统gradle版本是4.4.1,gradle wrapper版本是4.0。运行其他几个答案给出的命令后:
gradle wrapper --gradle-version 4.4.1
Run Code Online (Sandbox Code Playgroud)
我仍然有同样的错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine java version from '11.0.4'.
Run Code Online (Sandbox Code Playgroud)
事实证明,直到 gradle 4.8 才支持 java 11,而我的软件存储库只有 4.4.1。(另外,升级到较新的 gradle 版本可能与我试图编译的包不兼容。)
答案是降级java。我的系统实际上已经安装了 java8,通过运行这个命令并按照说明在 java 版本之间切换很容易:
sudo update-alternatives --config java
Run Code Online (Sandbox Code Playgroud)
小智 5
由于包装器版本不支持 11+,您可以使用简单的技巧来永远欺骗更新版本的 InteliJ。
press3x Shift -> type "Switch Boot JDK" -> and change for java 8.
Run Code Online (Sandbox Code Playgroud)
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
或者,如果您想使用 java 11+,您只需将包装器版本更新为 4.8+
简而言之,升级您gradlew使用的系统gradle工具。请注意,即使您的系统gradle版本是< 5.
gradle wrapper --gradle-version=5.1.1
Run Code Online (Sandbox Code Playgroud)
我在这里遇到了同样的问题。在我的情况下,我需要使用旧版本的 JDK,我使用sdkmanager来管理 JDK 的版本,因此,我将虚拟机的版本更改为 1.8。
sdk use java 8.0.222.j9-adpt
Run Code Online (Sandbox Code Playgroud)
之后,应用程序在这里按预期运行。
| 归档时间: |
|
| 查看次数: |
81606 次 |
| 最近记录: |