Pour lancer une application React Native avec Android
react-native run-android
SDK location not found
Ce message est accompagné du détail suivant :
Define location with sdk.dir in the local.properties file
or with an ANDROID_HOME environment variable
En gros, l'emplacement du SDK Android n'est pas trouvé. Sous Windows, le SDK se trouve ici :
C:\Users\Sam\AppData\Local\Android\sdk
Evidemment, au lieu de "Sam", mettez le nom d'utilisateur correspondant au votre
Pour ajouter l'emplacement du SDK au PATH :
- dans le menu de démarrage de Windows, cliquez sur l'engrenage représentant les paramètres,
- puis dans le champ texte "recherchez un paramètre", tapez "env" et acceptez la suggestion "modifier les variables d'environnement système"
- cliquer sur le bouton "variables d'environnement"
- dans l'onglet qui souvre, cliquez sur le bouton "nouvelle"
- en clé ajoutez "ANDROID_HOME"
- et en valeur C:\Users\Sam\AppData\Local\Android\sdk
IMPORTANT : pensez à fermer la console puis à l'ouvrir de nouveau pour que votre modification du "path" soit prise en compte.
Si vous choisissez de jouez avec le fichier sdk.dir, c'est un fichier qui devrait comporter une unique ligne :
C:\Users\Sam\AppData\Local\Android\sdk
de nouveau en mettant un nom d'utilisateur propre à votre poste en lieu et place de "Sam".
You have not accepted the license agreements of the following SDK components
Cette erreur au complet donne
You have not accepted the license agreements of the following SDK components:
[Android SDK Platform 23, Android SDK Build-Tools 23.0.1].
Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
C'est assez clair : il faut accepter la licence du SDK que votre application React Native essaye d'excécuter.
Pour ce faire :
- j'avais déjà installé au préalable Android Studio (faites le donc si ce n'est déjà fait)
- dans Android Studio, allez dans Tools / Android / SDK Manager et ajouté Android 6.0 (car c'est la version correspondant à API Level 23 qui m'est demandée)
Execution failed for task ':app:compileDebugJavaWithJavac'
Celle-ci est bête, car elle signifie que j'avais omis d'installer le JDK
Execution failed for task ':app:compileDebugJavaWithJavac'.
Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_161 contains a valid JDK installation.
Il a suffit d'installer le JDK depuis le site d'Oracle :
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Execution failed for task ':app:installDebug'.
Et plus précisément
Execution failed for task ':app:installDebug'.
com.android.builder.testing.api.DeviceException: No connected devices!
Toujours depuis Android Studio :
- tools / Android / AVD Manager il suffit de créer un Virtual Device correspond à l'API Level demandé plus haut dans une précédente erreur (API LEvel 23)
Failed run android simulator : No connected devices!
Le message est clair. La question est alors : comment diable faire en sorte de lancer un device ?
Il suffit d'exécuter la commande
// emulator -avd {AVD_NAME}
// dans mon cas, nexus4api23 étant le npm d'un AVD créé précédemment
emulator -avd nexus4api23
Si la commande emulator n'est pas trouvée car :
Le terme emulator n'est pas reconnu comme nom d'applet de commande, fonction, fichier de script ou programme exécutable
ajoutez la simplement à vos variables d'environnement en éditant cette fois la variable "path" pour ajouter :
// evidemment, remplacez "Sam" par votre nom d'utilisateur
C:\Users\Sam\AppData\Local\Android\sdk\emulator
IMPORTANT : pensez à fermer la console puis à l'ouvrir de nouveau pour que votre modification du "path" soit prise en compte.
Options utiles pour la commande emulator
Pour lister tous les AVD
emulator -list-avds
Pour lancer un AVD particulier (vu précédemment)
// emulator -avd {AVD_NAME}
// dans mon cas, nexus4api23 étant le npm d'un AVD créé précédemment
emulator -avd nexus4api23
Pour davantage de détails concernant la commande emulator
https://developer.android.com/studio/run/emulator-commandline.html
error: device offline
Si la connection à l'Android Debug Bridge est interrompue :
adb kill-server
adb start-server
Avertissement concernant la variable d'environnement ANDROID_HOME obsolète
Il est désormais recommandé d'ajouter une variable d'environnement
ANDROID_SDK_ROOT
plutôt que l'"ANDROID_HOME"
ANDROID_HOME
(même si ANDROID_HOME est encore reconnu)
ANDROID_HOME, which also points to the SDK installation directory, is deprecated. If you continue to use it, the following rules apply:
If ANDROID_HOME is defined and contains a valid SDK installation, it's value is used instead of the value in ANDROID_SDK_ROOT.
If ANDROID_HOME is not defined, the value in ANDROID_SDK_ROOT is used.
If ANDROID_HOME is defined but, does not exist or does not contain a valid SDK installation, the value in ANDROID_SDK_ROOT is used instead.
Et voilà, après avoir eu une ou plusieurs de ces erreurs et avoir utilisé les corrections ci-dessus, votre application React Native devrait se lancer dans votre emulateur Android.