J'ai lancé le commentaire suivant:
./gradlew app:installDebug
seulement pour être rencontré avec le journal:
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
Ma version de gradle est la 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
Je ne sais pas comment procéder (j'ai essayé de mettre à niveau / rétrograder, mais rien n'a fonctionné jusqu'à présent).
MISE À JOUR: Lorsque j'ai couru ./gradlew --version
, j'ai obtenu ce qui suit:
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
Mon gradle-wrapper.properties
contient:
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
ou./gradlew --version
? Les projets basés sur Gradle utilisent souvent un wrapper pour permettre à différents développeurs d'utiliser plus facilement la même version de Gradle pour créer le projet; cela rend également les builds plus stables.gradle --version
Réponses:
Il existe deux applications Gradle différentes dans votre système.
le Gradle à l'échelle du système
Cette application est appelée par
gradle (arguments)
.le gradle-wrapper
Le gradle-wrapper est spécifique à chaque projet et ne peut être appelé que dans le répertoire du projet, en utilisant la commande
./gradlew (arguments)
.Votre version gradle à l'échelle du système est 5.1.1 (comme l'OP l'a expliqué dans les commentaires, l'exécution de la commande a
gradle --version
renvoyé la version 5.1.1).Cependant, l'échec est le résultat d'un appel à gradle-wrapper (
./gradlew
). Pourriez-vous vérifier la version de l'encapsuleur gradle de votre projet? Pour ce faire, exécutez./gradlew --version
dans le dossier de votre projet, dans le répertoire où se trouvent les fichiers gradlew et gradlew.bat.Mise à jour 1:
comme l'exécution a
./gradlew --version
échoué, vous pouvez vérifier manuellement la version de votre wrapper en ouvrant le fichier:avec un simple éditeur de texte. Le "distributionUrl" à l'intérieur devrait nous dire quelle est la version du wrapper.
Mise à jour 2: Conformément à la question mise à jour de l'OP, la version du gradle-wrapper est 4.1RC1.
Gradle a ajouté la prise en charge de JDK 11 dans Gradle 5.0 . Par conséquent, comme 4.1RC ne prend pas en charge le JDK 11, c'est définitivement un problème.
La manière la plus évidente serait de mettre à jour le gradle-wrapper de votre projet vers la version 5.0. Cependant, avant de mettre à jour, essayez d'exécuter
gradle app:installDebug
. Cela utilisera votre Gradle installé à l'échelle du système dont la version est 5.1.1 et prend en charge Java 11. Voyez si cela fonctionne. Si c'est le cas, alors votre buildscript (fichier build.gradle) n'est pas affecté par les changements de rupture entre v.4.1RC1 et v.5.1.1 et vous pouvez alors mettre à jour votre wrapper en exécutant à partir de la ligne de commande dans le dossier de votre projet:gradle wrapper --gradle-version=5.1.1
[ *].S'il
gradle app:installDebug
ne s'exécute pas correctement, vous devez peut-être mettre à niveau votre buildscript Gradle. Pour la mise à jour de la v.4.1RC1 vers la 5.1.1, le projet Gradle fournit un guide ( 1 , 2 ) avec les changements de rupture et les fonctionnalités obsolètes entre les versions mineures, afin que vous puissiez mettre à jour progressivement vers la dernière version.Alternativement, si pour une raison quelconque vous ne pouvez pas ou ne voulez pas mettre à jour votre buildscript Gradle, vous pouvez toujours choisir de rétrograder votre version Java vers une version prise en charge par Gradle 4.1RC1.
[*] Comme indiqué correctement dans une autre réponse de @lupchiazoem, utilisez
gradle wrapper --gradle-version=5.1.1
(et non pas./gradlew
comme je l'avais initialement publié par erreur). La raison en est que Gradle fonctionne sur Java. Vous pouvez mettre à jour votre Gradle-wrapper en utilisant n'importe quelle distribution Gradle fonctionnelle, soit votre Gradle installé à l'échelle du système, soit le Gradle-wrapper lui-même. Cependant, dans ce cas, votre wrapper n'est pas compatible avec votre version Java installée, vous devez donc utiliser le Gradle à l'échelle du système (c'est-à-diregradle
et non./gradlew
).la source
gradle wrapper --gradle-version=5.0
? Remplacez 5.0 par la version souhaitée, je pense que maintenant la dernière est la 5.4Comme
distributionUrl
il pointe toujours vers une version plus ancienne, mettez à niveau le wrapper en utilisant:gradle wrapper --gradle-version 5.1.1
Remarque: utilisez
gradle
et nongradlew
la source
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
version 6 par JDK12 ne semble pas fonctionner. 5.1.1 fonctionne bien, merci.Dans mon cas, la
JAVA_HOME
variable a été définie sur/usr/lib/jvm/jdk-11.0.2/
. Il suffisait de désactiver la variable comme ceci:$ export JAVA_HOME=
la source
GRADLE_HOME
été mis à jour (à 5.4.1 ``) mais pas la version gradle (pointant toujours vers une version plus ancienne4.3
), ce qui est étrange mais le redémarrage du terminal a bien fonctionné. quelque chose de bizarre avecsource ~/.bash_profile
La mise
gradle/wrapper/gradle-wrapper.properties
à jour avec la version suivante l'a corrigé pour moi:la source
tl; dr : rétrograder java en exécutant
update-alternatives
La version de mon système gradle était 4.4.1 et la version du wrapper gradle était 4.0. Après avoir exécuté la commande donnée par plusieurs autres réponses:
J'ai toujours eu la même erreur:
Il s'avère que java 11 n'était pas pris en charge avant la gradle 4.8, et mes référentiels logiciels n'avaient que 4.4.1. (De plus, la mise à niveau vers une version plus récente de gradle aurait pu être incompatible avec le package que j'essayais de compiler.)
La réponse était de rétrograder java. Mon système avait en fait java8 déjà installé, et il était facile de basculer entre les versions de java en exécutant cette commande et en suivant les instructions:
la source
Parce que la version wrapper ne prend pas en charge 11+, vous pouvez faire une astuce simple pour tricher pour toujours la nouvelle version d'InteliJ.
https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/
Ou si vous souhaitez travailler avec java 11+, vous devez simplement mettre à jour la version du wrapper vers 4.8+
la source
Pour résumer la réponse longue, mettez à niveau votre
gradlew
à l'aide de l'gradle
outil système . Notez que la mise à niveau ci-dessous fonctionne même si lagradle
version de votre système est< 5
.la source
J'ai eu le même problème ici. Dans mon cas, j'ai besoin d'utiliser une ancienne version de JDK et j'utilise sdkmanager pour gérer les versions de JDK, j'ai donc changé la version de la machine virtuelle en 1.8.
Après cela, l'application s'exécute comme prévu ici.
la source
J'ai eu le même problème. La mise à niveau vers gradle 5.0 a fait l'affaire pour moi.
Ce lien fournit des étapes détaillées sur la façon d'installer gradle 5.0: https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/
la source
J'ai eu un problème similaire: ma valeur par défaut
gradle wrapper
était la version 4.x, tandis que le support des versions supérieures de Java a été ajouté dans Gradle 5.J'ai mis à jour mon
gradlew
comme décrit ici: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapperTLTD:
la source
J'ai résolu cela en cliquant sur Fichier -> Structure du projet, puis j'ai changé l'emplacement du JDK pour utiliser le JDK intégré (recommandé)
la source
J'ai rencontré un problème similaire. J'ai supprimé ceux-ci:
contenu du dossier de construction.
puis reconstruisez.
* N'OUBLIEZ PAS DE SAUVEGARDER VOTRE PROJET D'ABORD *
la source
J'ai rencontré le même problème dans Ubuntu 18.04.3 LTS. Dans mon cas, apt a installé la version 4.4.1 de gradle. La version java déjà installée était 11.0.4
Le message de construction que j'ai reçu était
À l'époque, la plupart des documents en ligne faisaient référence à la version 5.6 de gradle, j'ai donc fait ce qui suit:
Ensuite j'ai répété l'initialisation du projet (en utilisant "gradle init" avec les valeurs par défaut). Après cela, "./gradlew build" a fonctionné correctement.
J'ai lu plus tard un commentaire concernant un changement de format de la sortie de "java --version" qui provoquait une rupture de gradle, qui a été corrigé dans une version ultérieure de gradle.
la source
Dans mon cas, j'essayais de créer et d'obtenir un fichier APK pour un ancien projet Unity 3D (afin de pouvoir jouer au jeu sur mon téléphone Android). J'utilisais la version la plus récente d'Android Studio et tous les packages SDK que je pouvais télécharger via SDK Manager dans Android Studio. Les packages SDK se trouvaient dans
Et le message d'erreur que j'ai reçu était le même sauf la version JDK (Java Development Kit) "jdk-12.0.2". JDK était situé à
Et la variable d'environnement dans Windows était JAVA_HOME: C: \ Program Files \ Java \ jdk-12.0.2
Après 3 heures de recherche, j'ai découvert que Unity ne prend pas en charge JDK 10. Comme indiqué dans
https://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/
. Ma suggestion est: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
.)la source
accéder au fichier de projet .. gradle / wrapper / gradlewrapper.properties
là, vous pouvez changer la valeur de
distributionurl
en quelle que soit la dernière version. (Trouvé sur docs.gradle.org)la source
J'étais confronté au même problème dans la configuration de Docker, alors que j'essayais d'installer
Gradle-2.4
avecJDL 11.0.7
. Je dois installer une version ultérieure pour résoudre le problème.Voici le Dockerfile de travail
la source