web-dev-qa-db-fra.com

Comment demander à Gradle d'utiliser Java à partir d'un emplacement différent?

Je construisais mon application de test dans Android Studio, puis dans le journal des événements, il était dit:

Android Studio utilise cet emplacement JDK: C:\Program Files\Android\Android Studio\jre qui est différent de ce que Gradle utilise par défaut: C:\Program Files (x86)\Java\jdk1.8.0_181 L'utilisation de différents emplacements peut engendrer plusieurs démons Gradle si les tâches Gradle sont exécutées à partir de la ligne de commande lors de l'utilisation de Android Studio.

Puis a donné ces options:

  1. Plus d'informations...
  2. Définissez Android Studio pour utiliser le même JDK que Gradle et synchroniser
  3. Ne plus afficher cet avertissement

J'ai cliqué sur:

Définissez Android Studio pour utiliser le même JDK que Gradle et synchroniser

alors mon application ne voulait plus construire.

Voici l'erreur:

Échec de la synchronisation de Gradle: impossible de démarrer le processus démon.
Ce problème peut être dû à une configuration incorrecte du démon.

Par exemple, une option jvm non reconnue est utilisée.
Veuillez vous référer au chapitre du manuel de l'utilisateur sur le démon à https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html

Ligne de commande de processus: C:\Program Files (x86)\Java\jdk1.8.0_181\bin\Java.exe -Xmx1536m -Dfile.encoding = windows-1252 -Duser.country = ZA -Duser.language = en -Duser. variante -cp C:\Users\{MyUserName} \. gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1\lib\gradle-launcher-5.4.1.jar org.gradle. launcher.daemon.bootstrap.GradleDaemon 5.4.1

Veuillez lire la sortie de processus suivante pour en savoir plus:

Une erreur s'est produite lors de l'initialisation de VM Impossible de réserver suffisamment d'espace pour le tas d'objets 1572864 Ko Consulter IDE journal pour plus de détails (Aide | Afficher journal)) (16 s 166 ms )

J'ai vérifié les journaux d'événements:

Je pense que précédemment, il a fait ceci:

Demander à Gradle d'utiliser Java depuis C:/Program Files/Android/Android Studio/jre

Maintenant, il dit ceci:

Demander à gradle d'utiliser Java à partir de C:/Program Files (x86) /Java/jdk1.8.0_181

Comment puis-je le remettre en place pour que mon application puisse à nouveau être construite?

Toute aide/conseil sera apprécié

9
Shiasu-sama

Vous devez modifier/ajouter une variable d'environnement.

Suivez ce lien pour savoir comment modifier/ajouter des variables d'environnement.

Maintenant, ajoutez/modifiez la variable 'Java_HOME' et définissez le chemin sur C:\Program Files\Android\Android Studio\jre

Remarque: Lorsque vous allez travailler sur un autre projet Java plus tard dans un autre IDE, vous devrez peut-être modifier à nouveau cette variable par défaut Java emplacement (dans ce cas peut-être C:/Program Files (x86)/Java/jdk1.8.0_181)

1
Guru Ananda

J'ai ce même problème, mais la messagerie semble contradictoire avec mes paramètres Android Studio.

Message:

Android Studio et Gradle utilisent des emplacements différents pour le JDK. Android Studio: D:\Program files\Android\Android Studio\jre Gradle: C:\Program Files (x86)\Java\jdk1. 8.0_91

L'utilisation de différents emplacements JDK peut entraîner l'apparition de plusieurs démons par Gradle lors de l'exécution de tâches pour Android Studio et d'autres processus externes.

Mon Java_HOME pointe vers: C:\Program Files (x86)\Java\jdk1.8.0_91, que le message indique que mon Gradle utilise. Mais dans Android Studio, quand je vais dans Fichier | Structure du projet, le chemin JDK gradle est défini sur: D:\Program Files\Android\Android Studio\jre - ce qui est pas ce que le message d'erreur rapporte. Et il indique que Android Studio utilise le chemin que j'ai défini pour Gradle et non le chemin vers lequel Java_HOME pointe. Il semble donc presque à l'envers de ce que j'attends et ne me permet pas de savoir comment y remédier ..

Je sens que je ne peux pas changer mon Java_HOME car d'autres applications en ont besoin en l'état.

1
sb4

Gradle utilise clairement mon Java Java (d'Oracle) alors que Android Studio utilise sa propre version).

J'ignore cet avertissement depuis la mise à niveau de Android Studio vers 3.6.1. Pas de problème jusqu'à présent. En effet, j'ai publié de nouvelles versions de mon application sans problème.

Si cela devient ennuyeux et si vous n'avez aucun autre problème, vous avez la possibilité d'ignorer les futurs avertissements: appuyez simplement sur l'avertissement et sélectionnez l'option pour ignorer les futurs messages liés à cet avertissement.

0
Pablo Alfonso

Ubuntu 16.04 LTS, Android Studio 3.6

Voilà comment je me suis débarrassé de l'avertissement:

1) localisez le script du lanceur AS studio.sh sur votre machine, la mienne est sous: /opt/Android-studio-3.x/bin
2) à l'intérieur du script, vous trouverez les lignes suivantes:

# ---------------------------------------------------------------------
# Locate a JDK installation directory which will be used to run the IDE.
# Try (in order): STUDIO_JDK, studio.jdk, ./jre64, JDK_HOME, Java_HOME, "Java" in PATH.
# ---------------------------------------------------------------------
if [ -n "$STUDIO_JDK" -a -x "$STUDIO_JDK/bin/Java" ]; then
  JDK="$STUDIO_JDK"
fi

if [ -z "$JDK" -a -s "$HOME/.AndroidStudio3.6/config/studio.jdk" ]; then
  USER_JRE=`"$CAT" $HOME/.AndroidStudio3.6/config/studio.jdk`
...

3) si, pour une raison quelconque, vous ne parvenez pas à exporter vos variables d'environnement vers le lanceur (comme cela m'arrive depuis la session xfce4), vous pouvez écrire le Java_HOME valeur à l'intérieur du studio.jdk fichier dont l'emplacement sur mon système, selon le script, est dans $HOME/.AndroidStudio3.6/config/studio.jdk.

$ echo $Java_HOME > $HOME/.AndroidStudio3.6/config/studio.jdk
$ cat $HOME/.AndroidStudio3.6/config/studio.jdk
/usr/lib/jvm/Java-8-Oracle

4) enfin, en redémarrant AS depuis la session DE, vous devriez voir le Java_HOME sous la fenêtre Fichier -> Structure du projet -> Emplacement du SDK définie sur la valeur ci-dessus et AS et gradle doivent utiliser le même JRE:

Project Structure Window

0
PJ_Finnegan