Ich habe folgenden Kommentar abgegeben:
./gradlew app:installDebug
nur um mit dem Protokoll erfüllt zu werden:
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
Meine Version von gradle ist 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
Ich bin nicht sicher, wie ich vorgehen soll (ich habe versucht, ein Upgrade / Downgrade durchzuführen, aber bisher hat nichts funktioniert).
UPDATE: Als ich lief ./gradlew --version
, bekam ich folgendes:
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
Mein gradle-wrapper.properties
enthält:
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 --version
oder./gradlew --version
? Gradle-basierte Projekte verwenden häufig einen Wrapper , um es verschiedenen Entwicklern zu erleichtern, dieselbe Gradle-Version zum Erstellen des Projekts zu verwenden. Dies macht Builds auch stabiler.gradle --version
Antworten:
Es gibt zwei verschiedene Gradle-Anwendungen in Ihrem System.
der systemweite Gradle
Diese Anwendung wird von aufgerufen
gradle (arguments)
.Der Gradle-Wrapper
Der Gradle-Wrapper ist für jedes Projekt spezifisch und kann nur mit dem Befehl im Projektverzeichnis aufgerufen werden
./gradlew (arguments)
.Ihre systemweite Gradle-Version ist 5.1.1 (wie das OP in den Kommentaren erläutert, hat die Ausführung des Befehls die
gradle --version
Version 5.1.1 zurückgegeben).Der Fehler ist jedoch das Ergebnis eines Aufrufs des Gradle-Wrappers (
./gradlew
). Könnten Sie die Gradle-Wrapper-Version Ihres Projekts überprüfen? Um dies zu erreichen , führen./gradlew --version
innerhalb Ordner Ihres Projektes, in dem Verzeichnis , in dem die gradlew und gradlew.bat Dateien sind.Update 1:
Da die Ausführung
./gradlew --version
fehlgeschlagen ist, können Sie die Version Ihres Wrappers manuell überprüfen, indem Sie die Datei öffnen:mit einem einfachen Texteditor. Die "DistributionUrl" im Inneren sollte uns die Version des Wrappers mitteilen.
Update 2: Gemäß der aktualisierten Frage des OP ist die Version des Gradle-Wrappers 4.1RC1.
Gradle hat JDK 11 in Gradle 5.0 unterstützt . Da 4.1RC JDK 11 nicht unterstützt, ist dies definitiv ein Problem.
Der naheliegende Weg wäre, den Gradle-Wrapper Ihres Projekts auf Version 5.0 zu aktualisieren. Versuchen Sie jedoch vor dem Aktualisieren die Ausführung
gradle app:installDebug
. Dies verwendet Ihren systemweit installierten Gradle, dessen Version 5.1.1 ist und Java 11 unterstützt. Überprüfen Sie, ob dies funktioniert. Wenn dies der Fall ist, ist Ihr Buildscript (Datei build.gradle) nicht von wichtigen Änderungen zwischen Version 4.1RC1 und Version 5.1.1 betroffen. Sie können Ihren Wrapper dann aktualisieren, indem Sie ihn über die Befehlszeile im Ordner Ihres Projekts ausführen:gradle wrapper --gradle-version=5.1.1
[ *].Wenn
gradle app:installDebug
die Ausführung nicht korrekt ist, müssen Sie möglicherweise Ihr Gradle-Buildscript aktualisieren. Für die Aktualisierung von Version 4.1RC1 auf 5.1.1 bietet das Gradle-Projekt eine Anleitung ( 1 , 2 ) mit wichtigen Änderungen und veralteten Funktionen zwischen kleineren Versionen, sodass Sie schrittweise auf die neueste Version aktualisieren können.Wenn Sie Ihr Gradle-Buildscript aus irgendeinem Grund nicht aktualisieren können oder möchten, können Sie alternativ jederzeit ein Downgrade Ihrer Java-Version auf eine von Gradle 4.1RC1 unterstützte Version durchführen.
[*] Wie in einer anderen Antwort von @lupchiazoem richtig ausgeführt, verwenden Sie
gradle wrapper --gradle-version=5.1.1
(und nicht so,./gradlew
wie ich es ursprünglich versehentlich dort gepostet hatte). Der Grund ist, dass Gradle auf Java läuft. Sie können Ihren Gradle-Wrapper mit jeder funktionierenden Gradle-Distribution aktualisieren, entweder mit Ihrem systemweit installierten Gradle oder mit dem Gradle-Wrapper selbst. In diesem Fall ist Ihr Wrapper jedoch nicht mit Ihrer installierten Java-Version kompatibel, sodass Sie den systemweiten Gradle (auch bekannt alsgradle
und nicht./gradlew
) verwenden müssen.quelle
gradle wrapper --gradle-version=5.0
? Ersetzen Sie 5.0 durch Ihre gewünschte Version. Ich denke, jetzt ist die neueste Version 5.4Wie
distributionUrl
immer noch auf eine ältere Version verweist, aktualisieren Sie den Wrapper mit:gradle wrapper --gradle-version 5.1.1
Hinweis: Verwenden
gradle
und nichtgradlew
quelle
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
Version 6 durch JDK12 scheint nicht zu funktionieren. 5.1.1 funktioniert gut, danke.In meinem Fall wurde die
JAVA_HOME
Variable auf gesetzt/usr/lib/jvm/jdk-11.0.2/
. Es war ausreichend, die Variable wie folgt zu deaktivieren:$ export JAVA_HOME=
quelle
GRADLE_HOME
wurde aktualisiert (auf 5.4.1``) aber nicht gradle version (zeigt immer noch auf ältere version4.3
) was seltsam ist aber das neu starten des terminal hat gut funktioniert. etwassource ~/.bash_profile
Das Update
gradle/wrapper/gradle-wrapper.properties
mit der folgenden Version hat es für mich behoben:quelle
tl; dr : Java durch Ausführen herabstufen
update-alternatives
Meine System-Gradle-Version war 4.4.1 und die Gradle-Wrapper-Version war 4.0. Nach dem Ausführen des Befehls durch mehrere andere Antworten:
Ich hatte immer noch den gleichen Fehler:
Es stellte sich heraus, dass Java 11 erst in Gradle 4.8 unterstützt wurde und meine Software-Repositorys nur 4.4.1 hatten. (Außerdem war das Upgrade auf eine neuere Gradle-Version möglicherweise nicht mit dem Paket kompatibel, das ich kompilieren wollte.)
Die Antwort war, Java herunterzustufen. Auf meinem System war Java8 bereits installiert, und es war einfach, zwischen Java-Versionen zu wechseln, indem Sie diesen Befehl ausführen und die Anweisungen befolgen:
quelle
Da die Wrapper-Version 11+ nicht unterstützt, können Sie einen einfachen Trick machen, um eine neuere Version von InteliJ für immer zu betrügen.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Oder Wenn Sie mit Java 11+ arbeiten möchten, müssen Sie einfach die Wrapper-Version auf 4.8+ aktualisieren
quelle
Um lange Antwort kurz zu machen, aktualisieren Sie
gradlew
das System mitgradle
Werkzeug. Beachten Sie, dass das folgende Upgrade auch dann funktioniert, wenn Ihre Systemversiongradle
ist< 5
.quelle
Ich hatte hier das gleiche Problem. In meinem Fall muss ich eine alte Version von JDK verwenden und ich verwende sdkmanager , um die Versionen von JDK zu verwalten. Daher habe ich die Version der virtuellen Maschine auf 1.8 geändert.
Danach läuft die App hier wie erwartet.
quelle
Ich hatte das gleiche Problem. Ein Upgrade auf Gradle 5.0 hat mir geholfen.
Dieser Link enthält detaillierte Schritte zur Installation von gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
quelle
Ich hatte ein ähnliches Problem: Mein Standard
gradle wrapper
war Version 4.x, während die Unterstützung für höhere Java-Versionen in Gradle 5 hinzugefügt wurde.Ich habe meine
gradlew
wie hier beschrieben aktualisiert : https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
quelle
Ich habe dieses Problem gelöst, indem ich auf Datei -> Projektstruktur geklickt und dann den JDK-Speicherort in Embedded JDK geändert habe (empfohlen).
quelle
Ich bin auf ein ähnliches Problem gestoßen. Ich habe diese gelöscht:
Inhalt des Build-Ordners.
dann wieder aufbauen.
* VERGESSEN SIE NICHT, IHR PROJEKT ZUERST ZU SICHERN *
quelle
Ich bin in Ubuntu 18.04.3 LTS auf dasselbe Problem gestoßen. In meinem Fall hat apt gradle Version 4.4.1 installiert. Die bereits installierte Java-Version war 11.0.4
Die Build-Nachricht, die ich bekam, war
Zu der Zeit verwiesen die meisten Online-Dokumente auf Gradle Version 5.6, daher habe ich Folgendes getan:
Dann wiederholte ich die Projektinitialisierung (unter Verwendung von "gradle init" mit den Standardeinstellungen). Danach funktionierte "./gradlew build" korrekt.
Ich habe später einen Kommentar zu einer Änderung des Formats der Ausgabe von "java --version" gelesen, die dazu führte, dass gradle brach, was in einer späteren Version von gradle behoben wurde.
quelle
In meinem Fall habe ich versucht, APK für ein altes Unity 3D-Projekt zu erstellen und zu erhalten (damit ich das Spiel auf meinem Android-Handy spielen kann). Ich habe die neueste Android Studio-Version und alle SDK-Pakete verwendet, die ich über den SDK-Manager in Android Studio herunterladen konnte. SDK-Pakete befanden sich in
Und die Fehlermeldung, die ich erhielt, war bis auf die JDK-Version (Java Development Kit) "jdk-12.0.2" dieselbe. JDK befand sich in
Die Umgebungsvariable in Windows war JAVA_HOME: C: \ Programme \ Java \ jdk-12.0.2
Nach 3 Stunden Recherche stellte ich fest, dass Unity JDK 10 nicht unterstützt
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Mein Vorschlag ist:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
Edit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")
.Android Studio > SDK Manager > Android SDK > Android SDK Location
.)quelle
muss zur Projektdatei .. gradle / wrapper / gradlewrapper.properties
Dort können Sie den Wert
distributionurl
auf die aktuellste Version ändern. (Gefunden auf docs.gradle.org)quelle
Ich hatte das gleiche Problem im Docker-Setup, als ich versuchte,
Gradle-2.4
mit zu installierenJDL 11.0.7
. Ich muss eine spätere Version installieren , um das Problem zu beheben.Hier ist die Arbeits-Docker-Datei
quelle