web-dev-qa-db-fra.com

React Native: Java_HOME n'est pas défini et aucune commande "Java" n'a été trouvée dans votre PATH

J'ai suivi pas à pas le fonctionnaire Pour commencer . J'ai commencé à partir d'une installation propre de Linux et ai installé tout ce qui était requis selon l'onglet "Construire des projets avec du code natif" J'ai aussi lu la section de dépannage. J'ai déjà créé le projet en utilisant le terminal.

C'est l'erreur quand j'exécute react-native run-Android:

    Starting JS server...
    Building and installing the app on the device (cd Android && ./gradlew installDebug)...

    ERROR: Java_HOME is not set and no 'Java' command could be found in your PATH.

    Please set the Java_HOME variable in your environment to match the
    location of your Java installation.

    Could not install the app on the device, read the error above for details.
    Make sure you have an Android emulator running or a device connected and have
    set up your Android development environment:
    https://facebook.github.io/react-native/docs/Android-setup.html

Java_HOME n'est pas trouvé car les dernières versions d'Android Studio ne nécessitent pas l'installation de Java sur le système. À la place, un environnement JRE interne est utilisé. 

Dédoublement de responsabilité: J'ai déjà lu cette question . Ce n'est pas ce que je veux. Je sais comment définir la maison Java. Je veux juste exécuter le projet de réaction SANS avoir à installer un fichier Java séparé.

Des questions:

  1. Comment trouver le Java interne dans le dossier Android Studio afin de pouvoir y pointer Java_HOME?
  2. Si ce n’est pas possible, puis-je ouvrir et exécuter le projet dans le dossier Android avec Android Studio? Comment actualiserais-je ce projet après avoir modifié le code JavaScript de React dans le dossier parent?
7
Mister Smith

Je répondrai à mes propres questions et alimenterai à la cuillère mes collègues utilisateurs de Linux:

  1. Pour pointer Java_HOME vers le JRE inclus avec Android Studio

    commencez par localiser le dossier d’installation d’Android Studio; puis trouvez le /jredirectory. Le chemin complet de ce répertoire correspond à ce que vous devez définir Java_PATH (merci à @TentenPonce pour son réponse ). Sous Linux, vous pouvez définir Java_HOME en ajoutant cette ligne à votre .bashrc ou .bash_profile files:

    export Java_HOME =/jre

Ce fichier (l’un ou l’autre) est identique à celui auquel vous avez ajouté Android_HOME si vous suiviez React Native - Guide de démarrage pour Linux. Les deux sont masqués par défaut et peuvent être trouvés dans votre répertoire personnel. Après avoir ajouté la ligne, vous devez recharger le terminal afin qu’il puisse récupérer la nouvelle variable d’environnement. Alors tapez:

source $HOME/.bash_profile

ou

source $HOME/.bashrc

et maintenant vous pouvez exécuter react-native run-Android dans ce même terminal. Une autre option consiste à redémarrer le système d'exploitation. D'autres terminaux pourraient fonctionner différemment.

NOTE: pour que le projet soit exécuté, vous devez démarrer un émulateur Android à l'avance, ou bien connecter un périphérique réel. Le moyen le plus simple consiste à ouvrir un projet Android Studio déjà existant et à lancer l'émulateur à partir de là, puis à fermer Android Studio.

  1. Depuis ce que react-native run-Android semble faire, c'est juste ceci:

    cd Android && ./gradlew installDebug

Vous pouvez réellement ouvrir le projet Android imbriqué avec Android Studio et l'exécuter manuellement. Les modifications JS peuvent être rechargées si vous activez le rechargement en direct dans l'émulateur. Tapez CTRL + M (CMD + M sur MacOS) et sélectionnez l’option "Activer le rechargement à chaud" dans le menu qui apparaît (bravo à @BKO pour sa réponse )

21
Mister Smith

Je pense que la bonne façon de trouver le Java interne utilisé par Android Studio est de

  1. Ouvrir Android Studio
  2. Allez dans Fichier-> Autres paramètres-> Structure de projet par défaut/Emplacement du JDK: 
  3. et copier ce que jamais la chaîne y est spécifiée

Cela ne nécessitera pas la mémorisation du dossier ou la recherche de Java et ces étapes prendront toutes les modifications futures de l'emplacement Java par l'équipe d'Android Studio, je suppose.

5
Vivu

Il se trouve dans le dossier Android Studio lui-même, à l'emplacement où vous l'avez installé.

 enter image description here

3
Tenten Ponce

Tout ce que j'ai fait est d'aller dans le répertoire de mon projet à partir du cmd (invite de commande) où j'ai tapé Java -version.it m'a dit quelle version il cherchait. donc j'ai installé cette version et j'ai changé le chemin en où se trouvait le jdk de cette version. 

1
benji8