La création de React Native Android a échoué. Emplacement du SDK introuvable


473

J'ai une erreur lorsque je lance Android

What went wrong:
A problem occurred evaluating project ':app'.  
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

Réponses:


843
  • Accédez au android/répertoire de votre projet natif réactif
  • Créez un fichier appelé local.propertiesavec cette ligne:
sdk.dir = /Users/USERNAME/Library/Android/sdk

USERNAMEest votre nom d'utilisateur macOS


* Incident: un problème est survenu lors de la configuration du projet ': app'. > Le répertoire SDK '/ usr / local / android-sdk' n'existe pas. Mais en fait mon sdk existe dans ce chemin
Pyae Sone Nyein

3
Avez-vous résolu ce problème? Je suis également confronté à cela en ce moment.
Gasper Kolenc du

8
J'ai pu résoudre ce problème en exécutant à partir d'Android Studio. Une fois que vous avez fait cela, cela fonctionne à partir de la ligne de commande.
Gant Laborde

Oui, la création de ce local.properties a résolu mon problème. Étrange mais fonctionne.
Sanj

113
Si vous êtes sur Windowssdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze

423
  1. Accédez à votre projet natif React -> Android
  2. Créer un fichier local.properties
  3. Ouvrez le dossier
  4. collez votre chemin SDK Android comme ci-dessous

    • sous Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • sous macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • sous linux sdk.dir = /home/USERNAME/Android/Sdk

Remplacez USERNAMEpar votre nom d'utilisateur

Maintenant, exécutez le react-native run-androiddans votre terminal.


4
J'ai déplacé mon SDK sur mon disque externe. Fonctionne pour moi en utilisant macOS Sierra.
ruelluna

4
à linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin

sdk.dir = / home / USERNAME / Android / Sdk -> fonctionne pour linux mais Android Studio pour Linux doit être présent et fonctionner (exécution gradle)
MarcoZen

Affichage de l'erreur * Qu'est-ce qui n'a pas fonctionné: Un problème est survenu lors de la configuration du projet ': app'. > Le répertoire SDK '/ Users / chandni sharma / Library / Android / sdk' n'existe pas.
Chandni

2
@Chandni Assurez-vous que le SDK Android est installé
a_rahmanshah

116

Vous pouvez essayer d'ajouter ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

10
J'ai déjà ANDROID_PATHdans l'environnement (Ubuntu, fichier .bashrc). Cependant, pour certaines raisons, je reçois toujours le problème. Je l'ai corrigé en créant local.propertieset en mettant le chemin comme indiqué dans d'autres réponses.
Hesam

3
J'ai un mac et env var ANDROID_HOME n'a pas aidé. local.propertiescependant.
Henrik

60

Ouvrez ~/.bash_profileet ajoutez:

 export ANDROID_HOME=~/Library/Android/sdk/
 export PATH=$PATH:~/android-sdks/platform-tools/
 export PATH=$PATH:~/android-sdks/tools/

entrez la description de l'image ici


10
Travaux. N'oubliez pas de redémarrer Terminal ou de taper source ~/.bash_profilepour que les nouvelles lignes d'exportation prennent effet.
Raptor

Pouvez-vous s'il vous plaît ajouter si un corps est incapable de trouver le bash_profile puis en créer un comme pour les premiers temporisateurs, ils ne peuvent pas trouver cela (moi aussi: p)
snehal agrawal

44

NE PAS METTRE À JOUR local.properties , c'est définitivement une mauvaise pratique.

C'est ainsi que je l'ai corrigé. Ajoutez ce qui suit dans ~/.bash_profileou ~/.bashrc.

export ANDROID_HOME=/usr/local/share/android-sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/build-tools/23.0.1:$PATH

Remarque: j'ai l'habitude brew caskd'installer le SDK Android en suivant ces instructions .


6
C'est la meilleure réponse, pas besoin de changer les propriétés locales. Fonctionne parfaitement pour moi
mike_dz

pourquoi cette mauvaise pratique? vraiment curieux car il semble que faire un changement localisé est beaucoup plus sûr que de faire un changement sur le chemin de votre système
Robbie Milejczak

8
Parce que si ce code sera vérifié dans le contrôle de code source, la prochaine personne qui essaiera de construire avec lui finira par regarder cette page.
Dave Welling

31

echo "sdk.dir = /Users/$(whoami)/Library/Android/sdk" > android/local.properties


1
C'est le moyen le plus sûr car vous ne modifiez aucun fichier système global. Et pour ceux qui n'ont pas ce type d'accès administrateur à leur machine.
GravyPlaya

23

Si vous êtes sous Windows, échappez (ajoutez des contre-obliques) les contre-obliques et les deux-points dans le android/local.propertiesfichier. Si ce n'est pas là, créez-le

sdk.dir = C\:\\Android\\sdk

2
Pour Windows, le SDK Android est sous C: \ Program Files \ Android \ android-sdk
Stephane

16

Mise à jour des étapes pour que React Native0.58 démarre sur MAC / Unix

  • Ouvrez bash_profile dans le terminal

nano ~ / .bash_profile

export ANDROID_HOME = $ HOME / Library / Android / sdk

export PATH = $ PATH: $ ANDROID_HOME / emulator

export PATH = $ PATH: $ ANDROID_HOME / tools

export PATH = $ PATH: $ ANDROID_HOME / tools / bin

export PATH = $ PATH: $ ANDROID_HOME / platform-tools

Control+S to save
Control+X to exit
Y to save changes
  • Mettre à jour les changements dans le terminal

source ~/.bash_profile

  • Valider le chemin:

echo $PATH

  • Confirmez si tout va bien:

adb devices


J'ai sauvé ma vie :)
marco burrometo

Parfois, vous devez fermer et rouvrir votre terminal
Oluwatobi Samuel Omisakin

14

Pour les utilisateurs de Windows

Une solution simple consiste à définir le chemin du SDK vers la liste des variables d'environnement.

  1. Rendez-vous sur les variables de l'environnement. (Votre PC> Propriétés)
  2. Créer nouveau variables système
  3. Définissez le nom de la variable sur ANDROID_HOME
  4. Définissez la valeur de la variable sur votre emplacement Android Sdk
  5. Appuyez sur OK (3 fois pour 3 boîtes de dialogue)

Remarque:

Votre Android Sdk est généralement situé dans

C: \ Users \ YourUserName \ AppData \ Local \ Android \ Sdk

Assurez-vous de fermer votre terminal actuel, car votre terminal contient toutes vos variables d'environnement préexistantes.


C'est ça. Pas besoin de modifier le local.properties, merci.
Rhadamez Gindri Hercilio

1
Fonctionne comme un charme 😊. Merci beaucoup!
Kapil Pandey

N'oubliez pas de redémarrer votre machine
mtoninelli

1
j'ai manqué que "fermez votre terminal actuel" omg et j'ai essayé j'ai presque abandonné et j'ai relu hahaha merci! cela a fonctionné!
Michimcchicken

11

Correction des erreurs de chemin du SDK sur les distributions Linux


Votre projet ne trouve pas le SDK défini dans les paramètres du projet via le chemin d'accès fourni, donc le projet doit pointer dans la bonne direction, et vous avez quelques options pour y parvenir, mais commençons par trouver le dossier SDK correct en premier.


Trouver votre SDK


Depuis le gestionnaire de packages


Si vous utilisez une installation JRE basée sur un package comme Java 8 JRE via un PPA personnalisé dans une distribution basée sur Debian, ou utilisez OpenJDK , le répertoire sera très probablement / usr / lib / jvm / java-8-oracle (ou quelle que soit la version que vous avez choisie). Vous pouvez trouver ce chemin d'accès défini dans la variable d'environnement JAVA_HOME :

$ echo $JAVA_HOME
 /usr/lib/jvm/java-8-oracle

Téléchargement manuel


Si vous avez installé via le téléchargement Java JRE / SDK , ce sera là où vous avez placé le dossier, par exemple / home / nom d'utilisateur /jdk-8u121_1.8.0 (ou quelque chose de similaire).

Les installations par script peuvent même ajouter le SDK à / opt / java-8-oracle , mais à ce jour, les instructions d'installation de Java laissent le placement du dossier entre vos mains.


Android Studio 2.2


Enfin, si vous utilisez Android Studio, le SDK est placé là où vous l'avez défini pour placer les fichiers SDK téléchargés via le gestionnaire de SDK du Studio. En allant dans Fichier> Paramètres> Apparence et comportement> Paramètres système> SDK Android , vous pouvez trouver le paramètre d'emplacement du SDK en haut avec l'option à modifier, et le dossier par défaut étant ~ / Android / Sdk .

Chemin du SDK Android Studio

Définition du chemin du SDK

Maintenant que nous savons où se trouve le SDK, il est temps de le faire savoir aux natifs de React.


Option 1: définir avec local.properties


Cette méthode est très simple, et il suffit de créer le fichier local.properties dans le dossier suivant, où Project_Folder est la base de votre application React-Native:

Dossier_projet / Android / App

Dans votre local.properties, vous souhaitez définir la variable sdk.dir sur le chemin de votre dossier SDK:

sdk.dir=/home/username/Android/Sdk

Bien que ce soit le moyen le plus simple de résoudre le problème, ce n'est pas le meilleur, surtout si vous travaillez avec plusieurs projets. Pour chaque projet, vous devrez créer ce fichier pour chaque projet, et si le dossier change, prévoyez de changer ce fichier pour chaque projet local.properties.

Une fois le fichier enregistré, réexécutez la commande react-native run-android .


Option 2: dossiers de paramètres avec des variables d'environnement


L'autre option consiste à définir les dossiers du SDK sur les variables d'environnement local que React-Native recherche par défaut. Pour ce faire, nous allons ajouter le chemin ANDROID_HOME. En prime, nous pouvons également ajouter nos outils Android au même endroit. Nous devons l'ajouter plutôt aux fichiers .bash_profile ou .profile dans notre répertoire personnel, qui sont chargés en dernier, afin que nous puissions nous assurer que rien d'autre ne remplace les paramètres que nous définissons. Comme ils se trouvent dans votre répertoire personnel, il n'est pas nécessaire de les modifier avec des privilèges augmentés.

**$ vim ~/.profile**  (use nano or pico if you prefer)

Dans le fichier, ajoutez les lignes suivantes en remplaçant le dossier SDK par celui que vous avez trouvé ci-dessus. J'utiliserai le dossier Android Studio comme exemple:

export ANDROID_HOME="~/Android/Sdk"
export PATH=$PATH:~/Android/Sdk/tools:~/Android/Sdk/platform-tools

Enregistrez le fichier, puis appliquez les paramètres de profil:

$ source ~/.profile
$ echo $ANDROID_HOME
/home/dbrown/Android/Sdk

Si le dossier Sdk s'affiche correctement, félicitations! Réexécutez votre commande react-native et regardez le processus de création d'application continuer.


Si vous avez encore des problèmes


Si, pour une raison quelconque, vous recevez l'erreur " > n'a pas pu trouver la cible avec la chaîne de hachage 'android-23' dans: votre dossier / sdk / , vous devez vous assurer que la version de construction du projet et la version du SDK installé correspondent (React -Native par défaut à 23.0.1). Vous pouvez trouver la version par défaut dans Project_Folder / android / app / build.gradle , puis rechercher buildToolsVersion . Vous pouvez bien sûr changer la version à partir de ce fichier, ou dans Android Studio, allez dans Fichier > Structure du projet pour changer le SDK du projet . Je ne suggérerais pas de changer cette version à moins que vous ne sachiez absolument ce que vous faites, sinon installez la version du SDK que le projet recherche.


7

Vous devez écrire le chemin complet correct. N'utilisez pas '~ / Library / Android / sdk'

vi ~/.bashrc

export ANDROID_HOME=/Users/{UserName}/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

source ~/.bashrc

7

Sur Ubuntu, où vous devez obtenir SDK séparément de l'Android studio étrange le chemin fonctionnera avec Android Studio , mais avec React natif, vous devrez créer un nom de fichierlocal.properties .

Par exemple inn ~/AwesomeProject/androidet insérez cette ligne:
sdk.dir=/path/to/sdk/in/your/computer


4

Découvrez dans votre local.propertiesdossier:

sdk.dir=C\:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk

si le format est correct ou non


4

Si vous utilisez Ubuntu, accédez simplement au répertoire Android de votre projet natif de local.propertiesReact et créez un fichier appelé et ajoutez-y le chemin Android SDK comme suit:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk

4

Supprimez le local.propertiesdu dossier Android dans votre projet React et essayez-le.

Je l'ai fait et j'ai réussi.


3

Copiez l'autre projet Android local.properties de votre système et collez-le dans le dossier Android du projet natif React, cela fonctionnera.


Bravo pour une solution astucieuse et à l'épreuve des balles;)
Hack06

3

Cela a fonctionné pour moi.

Je prends React Native de Stephen Grider sur Udemy et l'un des étudiants l'a posté dans la leçon 50. Collé textuellement dans la ligne de commande (sans «$» bien sûr).

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile

Ne fais pas ça. cela entraînera l'erreur> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande

3

La meilleure solution que je puisse trouver est la suivante:

  1. Téléchargez Android Studio et le SDK de votre choix (même si vous pensez que vous n'en avez pas besoin, croyez-moi, vous en aurez besoin pour libérer le fichier apk et quelques modifications manuelles du code Android).
  2. Fichier> Nouveau> Importer, pointez vers l'emplacement où se trouve votre projet Android natif.
  3. S'il vous demande de télécharger un SDK spécifique, veuillez le télécharger. Il peut vous demander de mettre à jour gradle etc ... Veuillez continuer à mettre à jour si nécessaire.
  4. Si vous avez un SDK Android existant et que vous connaissez la version, tout ce que vous avez à faire est de faire correspondre cette version sous build.gradle de votre projet Android.

Voici à quoi ressemblera le fichier gradle:

entrez la description de l'image ici

Si tout s'est bien passé avec la configuration de votre machine et que vous pouvez compiler le projet à l'aide d'Android Studio, rien ne vous empêchera de créer votre application via la commande android-native cli build android.

Avec cette approche, non seulement vous résoudrez le problème du SDK, vous résoudrez également de nombreux problèmes liés à la configuration de votre machine pour le développement Android. L'importation trouvera automatiquement l'emplacement du SDK et créera local.properties. Vous n'avez donc pas à vous soucier des interventions manuelles.


2

Pour les utilisateurs Linux

Votre application n'obtient pas le chemin de android-sdk, donc si vous utilisez linux (ubuntu), vous devez ajouter un fichier nommé "local.properties" et l'enregistrer dans le dossier android, qui est créé à l'intérieur de votre dossier d'application .

Vous devez ajouter la ligne ci-dessous dans le fichier local.properties, qui est le chemin de votre android-sdk se trouve à l'intérieur de votre système à l'intérieur du système afin d'exécuter l'application.

sdk.dir=/opt/android-sdk/

enregistrer et réexécuter la commande react-native run-android

OU

vous pouvez ouvrir le terminal, tapez

sudo nano ~ / .bashrc

et collez le chemin ci-dessous à la fin du fichier

export ANDROID_HOME = "/ opt / android-sdk /"

et redémarrez votre ordinateur et exécutez à nouveau run-android réactif natif après cela.

Remarque: - Si vous mettez set path dans le fichier .bashrc, vous n'avez même pas besoin de créer le fichier local.properties.


Cela ne devrait pas être une solution codée en dur, mais dépend de l'emplacement d'installation du SDK Android Studio. Dans mon cas, sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia

2

Si vous créez et android studioprojetez, vous pouvez voir qu'un local.propertiesfichier est créé dans le répertoire racine de votre projet. Lorsque vous créez un projet natif réactif, il ne crée pas ce fichier pour vous. Vous devez donc le créer manuellement. Et je dois y ajouter skd dir. Créez donc un nouveau fichier dans le dossier Android (à la racine). et mettez votre chemin sdk comme ceci sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . N'oubliez pas: supprimez single \ with double. Comme ci-dessus.


2

Il existe 2 façons de résoudre ce problème:

  1. Exécutez simplement votre projet Android natif React dans le studio Android, il générera automatiquement votre fichier local.properties dans le projet Android natif React.

  2. une. Allez dans React-native Project -> Android
    b. Créez un fichier local.properties
    c. Ouvrez le fichier
    d. Collez votre chemin SDK Android comme ci-dessous


1

Assurez-vous que l'émulateur et la version Android appropriés sont installés. Cela a résolu le problème pour moi.


1

Dans votre répertoire de projets, il y a un dossier appelé "android" et à l'intérieur, il y a le fichier local.properties. Supprimez le fichier et la construction devrait s'exécuter correctement



0

Il y a deux fichiers gradle, changez celui à l'intérieur de votre C: \ myapp \ android \ build.gradle et non dans le répertoire parent myapp.

Remplacez 23.0.1 par votre version d'Android Build Tool installée dans mon cas 25.0.0

Exécutez run-android react-native pour voir votre application dans l'émulateur.


0

Ouvrez simplement le dossier android dans le projet d' Android Studio . Le studio Android crée le fichier nécessaire (local.properties) et télécharge la version du SDK pour exécuter Android nécessaire.


0

Je suis sous Windows et j'ai dû modifier le chemin sdk indépendamment de l'avoir dans PATH env. variable

sdk.dir=C:/Users/MY_USERNAME/AppData/Local/Android/Sdk

A changé ce fichier:

MyProject\android\local.properties

0

Le problème est que vous avez mal configuré les variables d'environnement. Vous devez utiliser (sous Windows) le SDK de:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Pour plus d'informations: https://facebook.github.io/react-native/docs/getting-started

Sélectionnez: React Native CLI Quickstart dans la section Environnement de développement Android au point 3. Configurez le ANDROID_HOME variable d'environnement

Si vous le faites tel que vous l'avez en ce moment, vous devez configurer chaque projet pour utiliser vos variables d'environnement et si le projet concerne plusieurs personnes avec leur équipement, cela peut provoquer un problème. Si vous le faites comme je vous l'ai dit, vous n'aurez à configurer aucun projet.


0

Si vous avez installé Project/androidAndroid Studio, ouvrez simplement l' aide d'Android Studio et il vous avertira de changer le chemin d'emplacement du SDK dans le projet.


-2

Copiez l'autre projet Android local.properties de votre système et collez-le dans le dossier Android du projet natif React, cela fonctionnera.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk

C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.