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.
Pyae Sone Nyein
la source

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

Ravin
la source
* 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.

Naveen TP
la source
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
Nish
la source
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

notdrone
la source
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 .

locropulenton
la source
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

snowcamel
la source
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
Sajjad Ashraf
la source
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

Hitesh Sahu
la source
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.

Ozesh
la source
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.

DBrown
la source
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
hoi
la source
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

connelblaze
la source
4

Découvrez dans votre local.propertiesdossier:

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

si le format est correct ou non

Makvin
la source
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
Keivan
la source
4

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

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

Zaid Qureshi
la source
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.

Rathore
la source
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
Utah
la source
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.

basé sur le code
la source
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.

Yash Vekaria
la source
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.

Nouman Ghaffar
la source
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

Danois Hassan
la source
1

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

Arel
la source
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

Peter Hassaballah
la source
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.

P.Ranjan
la source
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.

Rasoul Miri
la source
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
NK_Mimrot
la source
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.

IvanAllue
la source
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.

FortuneCookie
la source
-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
champika wishwanath
la source
C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath