Reaktion Native Android Build fehlgeschlagen. SDK-Speicherort nicht gefunden

473

Ich habe einen Fehler, wenn ich anfange, Android auszuführen

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
quelle

Antworten:

843
  • Wechseln Sie in das android/Verzeichnis Ihres reaktionsnativen Projekts
  • Erstellen Sie eine Datei local.propertiesmit der folgenden Zeile:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Wo USERNAMEist dein macOS-Benutzername?

Ravin
quelle
* Was ist schief gelaufen: Beim Konfigurieren des Projekts ': app' ist ein Problem aufgetreten. > Das SDK-Verzeichnis '/ usr / local / android-sdk' existiert nicht. Aber tatsächlich existiert mein SDK auf diesem Weg
Pyae Sone Nyein
3
Habt ihr dieses Problem behoben? Ich stehe jetzt auch vor diesem Problem.
Gasper Kolenc
8
Ich konnte dies beheben, indem ich von Android Studio aus lief. Sobald Sie dies getan haben, funktioniert es über die Befehlszeile.
Gant Laborde
Ja, das Erstellen dieser local.properties hat mein Problem gelöst. Seltsam, funktioniert aber.
Sanj
113
Wenn Sie auf Windowssdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
Razze
422
  1. Gehen Sie zu Ihrem reaktionsnativen Projekt -> Android
  2. Erstellen Sie eine Datei local.properties
  3. Öffne die Datei
  4. Fügen Sie Ihren Android SDK-Pfad wie folgt ein

    • in Windows sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
    • in macOS sdk.dir = /Users/USERNAME/Library/Android/sdk
    • unter Linux sdk.dir = /home/USERNAME/Android/Sdk

Ersetzen Sie USERNAMEdurch Ihren Benutzernamen

Führen Sie nun das react-native run-androidin Ihrem Terminal aus.

Naveen TP
quelle
4
Ich habe mein SDK auf mein externes Laufwerk verschoben. Funktioniert für mich mit macOS Sierra.
ruelluna
4
in Linuxsdk.dir=/home/USERNAME/Android/Sdk
Ebin
sdk.dir = / home / USERNAME / Android / Sdk -> funktioniert für Linux, aber Android Studio für Linux muss vorhanden sein und funktionieren (Gradle läuft)
MarcoZen
Fehler anzeigen * Was ist schief gelaufen: Beim Konfigurieren des Projekts ': app' ist ein Problem aufgetreten. > Das SDK-Verzeichnis '/ Users / chandni sharma / Library / Android / sdk' existiert nicht.
Chandni
2
@Chandni Stellen Sie sicher, dass Sie Android SDK installiert haben
a_rahmanshah
116

Sie können versuchen, ANDROID_PATH hinzuzufügen

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Nish
quelle
10
Ich habe bereits ANDROID_PATHin der Umgebung (Ubuntu, .bashrc-Datei). Aus einigen Gründen bekomme ich das Problem jedoch immer noch. Ich habe es behoben, indem local.propertiesich den Pfad wie in anderen Antworten angegeben erstellt und eingefügt habe.
Hesam
3
Ich habe einen Mac und env var ANDROID_HOME hat nicht geholfen. local.propertiestat es jedoch.
Henrik
60

Öffnen ~/.bash_profileund hinzufügen:

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

Geben Sie hier die Bildbeschreibung ein

notdrone
quelle
10
Funktioniert. Denken Sie daran, Terminal neu zu starten, oder geben Sie ein source ~/.bash_profile, damit neue Exportzeilen wirksam werden.
Raptor
Können Sie bitte hinzufügen, wenn ein Körper das bash_profile nicht finden kann, dann erstellen Sie eines, da die ersten Timer das nicht finden können (ich auch: p)
snehal agrawal
44

NICHT AKTUALISIEREN local.properties , es ist definitiv eine schlechte Praxis.

So habe ich es behoben. Fügen Sie Folgendes in ~/.bash_profileoder hinzu ~/.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

Hinweis: Ich habe das Android SDK gemäß diesen Anweisungenbrew cask installiert .

locropulenton
quelle
6
Das ist die beste Antwort, keine Notwendigkeit, local.properties zu ändern. Funktioniert perfekt für mich
mike_dz
Warum ist das schlechte Praxis? Wirklich neugierig, da es so aussieht, als wäre eine lokalisierte Änderung viel sicherer als eine Änderung Ihres
Systempfads
8
Denn wenn dieser Code in die Quellcodeverwaltung eingecheckt wird, sieht sich die nächste Person, die versucht, damit zu erstellen, diese Seite an.
Dave Welling
31

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

Schneekamell
quelle
1
Dies ist der sicherste Weg, da Sie keine globalen Systemdateien ändern. Und für diejenigen, die keinen solchen Administratorzugriff auf ihren Computer haben.
GravyPlaya
23

Wenn Sie unter Windows arbeiten, maskieren Sie die Backslashes und den Doppelpunkt in der android/local.propertiesDatei (fügen Sie Backlashes hinzu) . Wenn es nicht da ist, dann erstelle es

sdk.dir = C\:\\Android\\sdk
Sajjad Ashraf
quelle
2
Für Windows befindet sich das Android SDK unter C: \ Programme \ Android \ android-sdk
Stephane
16

Die Schritte für React Native0.58 wurden aktualisiert, um mit MAC / Unix zu beginnen

  • Öffnen Sie bash_profile im 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
  • Aktualisieren Sie die Änderungen im Terminal

source ~/.bash_profile

  • Pfad validieren:

echo $PATH

  • Bestätigen Sie, ob alles in Ordnung ist:

adb devices

Hitesh Sahu
quelle
Rettete
Manchmal müssen Sie Ihr Terminal schließen und wieder öffnen
Oluwatobi Samuel Omisakin
14

Für Windows-Benutzer

Eine einfache Lösung besteht darin, den SDK-Pfad auf die Liste der Umgebungsvariablen festzulegen.

  1. Gehen Sie zu den Umgebungsvariablen. (Ihr PC> Eigenschaften)
  2. Neue Systemvariablen erstellen
  3. Setzen Sie den Variablennamen auf ANDROID_HOME
  4. Stellen Sie den Variablenwert einStellen auf Ihren Android Sdk-Speicherort ein
  5. Drücken Sie OK (3 Mal für 3 Dialogfelder).

Hinweis:

Ihr Android Sdk befindet sich in der Regel in

C: \ Benutzer \ Ihr Benutzername \ AppData \ Local \ Android \ Sdk

Stellen Sie sicher, dass Sie Ihr aktuelles Terminal schließen, da Ihr Terminal alle bereits vorhandenen Umgebungsvariablen enthält.

Ozesh
quelle
Das ist es. Sie müssen die local.properties nicht bearbeiten, danke.
Rhadamez Gindri Hercilio
1
Funktioniert wie ein Zauber 😊. Vielen Dank!
Kapil Pandey
Denken Sie daran, Ihren Computer neu zu
starten
1
Ich habe das Omg "Schließe dein aktuelles Terminal" verpasst und ich habe versucht, fast aufzugeben und ich habe wieder gelesen, hahaha, danke! das hat funktioniert!
Michimcchicken
11

Beheben von SDK-Pfadfehlern auf Linux-Distributionen


Ihr Projekt findet das in den Projekteinstellungen festgelegte SDK nicht über den angegebenen Pfad. Daher muss das Projekt in die richtige Richtung zeigen, und Sie haben einige Optionen, um dies zu erreichen. Beginnen wir jedoch damit, zuerst den richtigen SDK-Ordner zu finden.


Finden Sie Ihr SDK


Vom Paketmanager


Wenn Sie eine paketbasierte JRE-Installation wie Java 8 JRE über eine benutzerdefinierte PPA in einer Debian-basierten Distribution verwenden oder OpenJDK verwenden , lautet das Verzeichnis höchstwahrscheinlich / usr / lib / jvm / java-8-oracle (oder welche Version Sie gewählt haben). Sie finden diesen Pfad in der Umgebungsvariablen JAVA_HOME :

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

Manueller Download


Wenn Sie über den Java JRE / SDK-Download installiert haben , befindet sich dieser überall dort, wo Sie den Ordner abgelegt haben, z. B. / home / username /jdk-8u121_1.8.0 (oder ähnliches).

Bei Skriptinstallationen wird das SDK möglicherweise sogar zu / opt / java-8-oracle hinzugefügt. Zum jetzigen Zeitpunkt belassen die Anweisungen zur Java-Installation die Ordnerplatzierung in Ihren Händen.


Android Studio 2.2


Wenn Sie Android Studio verwenden, wird das SDK an der Stelle platziert, an der Sie es festgelegt haben, um die über den SDK-Manager von Studio heruntergeladenen SDK-Dateien abzulegen. Unter Datei> Einstellungen> Darstellung und Verhalten> Systemeinstellungen> Android SDK finden Sie oben die SDK-Standorteinstellung mit der Option zum Ändern und dem Standardordner ~ / Android / Sdk .

Android Studio SDK-Pfad

Festlegen des SDK-Pfads

Jetzt, da wir wissen, wo sich das SDK befindet, ist es Zeit, React-Native zu informieren.


Option 1: Mit local.properties festlegen


Diese Methode ist sehr einfach und Sie müssen lediglich die Datei local.properties im folgenden Ordner erstellen , in dem Project_Folder die Basis Ihrer React-Native-Anwendung ist:

Project_Folder / Android / App

In Ihren local.properties möchten Sie die Variable sdk.dir auf den Pfad Ihres SDK-Ordners setzen:

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

Dies ist zwar der einfachste Weg, um das Problem zu beheben, aber nicht der beste, insbesondere wenn Sie mit mehreren Projekten arbeiten. Für jedes Projekt müssen Sie diese Datei für jedes Projekt erstellen. Wenn sich der Ordner ändert, planen Sie, diese Datei für die local.properties jedes Projekts zu ändern.

Führen Sie nach dem Speichern der Datei den Befehl react-native run-android erneut aus .


Option 2: Einstellungsordner mit Umgebungsvariablen


Die andere Option besteht darin, die SDK-Ordner auf die lokalen Umgebungsvariablen festzulegen, nach denen React-Native standardmäßig sucht. Dazu fügen wir den Pfad ANDROID_HOME hinzu. Als Bonus können wir auch unsere Android-Tools an derselben Stelle hinzufügen. Wir müssen dies eher zu den .bash_profile- oder .profile-Dateien in unserem Home-Verzeichnis hinzufügen, die zuletzt geladen wurden, damit wir sicherstellen können, dass nichts anderes die von uns vorgenommenen Einstellungen überschreibt. Da sich diese in Ihrem Home-Verzeichnis befinden, müssen Sie nicht mit eskalierten Berechtigungen bearbeiten.

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

Fügen Sie in der Datei die folgenden Zeilen hinzu und ersetzen Sie den SDK-Ordner durch den oben gefundenen. Ich werde den Android Studio-Ordner als Beispiel verwenden:

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

Speichern Sie die Datei und wenden Sie die Profileinstellungen an:

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

Wenn der Sdk-Ordner korrekt angezeigt wird, herzlichen Glückwunsch! Führen Sie Ihren reaktionsnativen Befehl erneut aus und beobachten Sie, wie der App-Erstellungsprozess fortgesetzt wird.


Wenn Sie noch Probleme haben


Wenn aus irgendeinem Grund die Fehlermeldung " > Ziel mit Hash-Zeichenfolge 'android-23' in: Ihrem Ordner / sdk / nicht gefunden werden konnte , müssen Sie sicherstellen, dass die Build-Version des Projekts und die Version des installierten SDK übereinstimmen (React -Native ist standardmäßig 23.0.1). Sie finden die Standardversion in Project_Folder / android / app / build.gradle und suchen dann nach buildToolsVersion . Sie können die Version natürlich aus dieser Datei ändern oder in Android Studio zu Datei gehen > Projektstruktur zum Ändern des Projekt-SDK . Ich würde nicht empfehlen, diese Version zu ändern, es sei denn, Sie wissen genau, was Sie tun. Andernfalls installieren Sie die SDK-Version, nach der das Projekt sucht.

DBrown
quelle
7

Sie müssen den richtigen vollständigen Pfad schreiben. Verwenden Sie nicht '~ / 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
quelle
7

Unter Ubuntu, wo Sie SDK separat von Android Studio erhalten müssen, funktioniert der Pfad seltsamerweise mit Android Studio, aber mit React Native müssen Sie einen Dateinamen erstellenlocal.properties .

Zum Beispiel inn ~/AwesomeProject/androidund fügen Sie diese Zeile ein:
sdk.dir=/path/to/sdk/in/your/computer

Connelblaze
quelle
4

Überprüfen Sie in Ihrer local.propertiesDatei:

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

ob das Format richtig ist oder nicht

Makvin
quelle
4

Wenn Sie Ubuntu verwenden, gehen Sie einfach in das Android-Verzeichnis Ihres local.propertiesreaktionsnativen Projekts und erstellen Sie eine Datei mit dem Namen und fügen Sie den folgenden Android SDK-Pfad hinzu:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Keivan
quelle
4

Löschen Sie die local.propertiesaus dem Android Ordner in Ihrem Reaktionsprojekt und probieren Sie es aus.

Ich habe das getan und es geschafft.

Zaid Qureshi
quelle
3

Kopieren Sie das andere Android-Projekt local.properties Ihres Systems und fügen Sie es in den Android-Ordner des React-native-Projekts ein, das funktionieren soll.

Rathore
quelle
Ein
großes Lob
3

Das hat bei mir funktioniert.

Ich nehme Stephen Griders React Native auf Udemy und einer der Studenten hat dies in Vorlesung 50 gepostet. Wörtlich in die Befehlszeile eingefügt (natürlich ohne '$').

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Utah
quelle
Tu das nicht. es wird in dem Fehler führen> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande
3

Die beste Lösung, die ich finden kann, ist wie folgt:

  1. Laden Sie Android Studio und SDK Ihrer Wahl herunter (auch wenn Sie glauben, dass Sie es nicht brauchen, vertrauen Sie mir, dass Sie es benötigen würden, um die APK-Datei und einige manuelle Änderungen am Android-Code freizugeben).
  2. Datei> Neu> Importieren, zeigen Sie auf den Speicherort, an dem sich Ihr natives Android-Projekt befindet.
  3. Wenn Sie aufgefordert werden, ein bestimmtes SDK herunterzuladen, laden Sie es bitte herunter. Es kann Sie auffordern, Gradle usw. zu aktualisieren. Bitte aktualisieren Sie bei Bedarf weiter.
  4. Wenn Sie ein vorhandenes Android SDK haben und die Version kennen, müssen Sie nur diese Version unter build.gradle Ihres Android-Projekts abgleichen.

So sieht die Gradle-Datei aus:

Geben Sie hier die Bildbeschreibung ein

Wenn bei Ihrem Computer-Setup alles gut gelaufen ist und Sie das Projekt mit Android Studio kompilieren können, hindert Sie nichts daran, Ihre App mit dem reaktionsnativen Befehl cli build android zu erstellen.

Mit diesem Ansatz lösen Sie nicht nur das Problem des SDK, sondern auch viele Probleme im Zusammenhang mit Ihrem Computer-Setup für die Android-Entwicklung. Der Import findet automatisch den SDK-Speicherort und erstellt local.properties. Daher müssen Sie sich keine Gedanken über manuelle Eingriffe machen.

codebasiert
quelle
2

Für Linux-Benutzer

Ihre App erhält nicht den Pfad von android-sdk. Wenn Sie also Linux (Ubuntu) verwenden, müssen Sie eine Datei mit dem Namen "local.properties" hinzufügen und im Android-Ordner speichern, der in Ihrem App-Ordner erstellt wird .

Sie müssen die folgende Zeile in die Datei local.properties einfügen. Dies ist der Pfad Ihres Android-SDK, der sich in Ihrem System innerhalb des Systems befindet, um die App auszuführen.

sdk.dir=/opt/android-sdk/

Speichern Sie den Befehl react-native run-android und führen Sie ihn erneut aus

ODER

Sie können Terminal öffnen, eingeben

sudo nano ~ / .bashrc

und fügen Sie den folgenden Pfad am Ende der Datei ein

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

und starten Sie Ihren Computer neu und führen Sie danach erneut React-Native Run-Android aus.

Hinweis: - Wenn Sie den festgelegten Pfad in die .bashrc-Datei einfügen, müssen Sie nicht einmal die Datei local.properties erstellen.

Yash Vekaria
quelle
Dies sollte keine fest codierte Lösung sein, sondern hängt davon ab, wo das Android Studio SDK installiert wurde. In meinem Fall ist sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia
2

Wenn Sie erstellen und android studioprojizieren, sehen Sie, dass eine local.propertiesDatei in Ihrem Projektstammverzeichnis erstellt wird. Wenn Sie ein natives Reaktionsprojekt erstellen, wird diese Datei nicht für Sie erstellt. Sie müssen es also manuell erstellen. Und muss skd dir hinzufügen. Erstellen Sie also eine neue Datei im Android-Ordner (im Stammverzeichnis). und setzen Sie Ihren SDK-Pfad wie folgt sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . : Denken Sie daran: Entfernen Sie single \ mit double. Genau wie oben.

Nouman Ghaffar
quelle
2

Es gibt zwei Möglichkeiten, um dieses Problem zu lösen:

  1. Führen Sie einfach Ihr natives Android-Projekt "Reagieren" im Android Studio aus. Es generiert automatisch Ihre Datei " local.properties " im nativen Android-Projekt "Reagieren".

  2. ein. Gehen Sie zu React-native Project -> Android.
    B. Erstellen Sie eine Datei local.properties
    c. Öffnen Sie die Datei
    d. Fügen Sie Ihren Android SDK-Pfad wie folgt ein

Dänischer Hassan
quelle
1

Stellen Sie sicher, dass Sie den richtigen Emulator und die richtige Android-Version installiert haben. Das hat das Problem für mich gelöst.

Arel
quelle
1

In Ihrem Projektverzeichnis befindet sich ein Ordner namens "android" und darin befindet sich die Datei local.properties. Löschen Sie die Datei und der Build sollte erfolgreich ausgeführt werden

Peter Hassaballah
quelle
0

Es gibt zwei Gradle-Dateien. Ändern Sie die Datei in Ihrem C: \ myapp \ android \ build.gradle und nicht im übergeordneten Verzeichnis myapp.

Ersetzen Sie 23.0.1 durch Ihre in meinem Fall 25.0.0 installierte Version des Android Build Tools

Führen Sie reag-native run-android aus , um Ihre App im Emulator zu sehen.

P. Ranjan
quelle
0

Öffnen Sie einfach den Ordner Android im Projekt von Android Studio . Android Studio erstellt die erforderliche Datei (local.properties) und lädt die SDK-Version für Android herunter.

Rasoul Miri
quelle
0

Ich bin unter Windows und musste den SDK-Pfad ändern, unabhängig davon, ob er in PATH env enthalten ist. Variable

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

Diese Datei wurde geändert:

MyProject\android\local.properties
NK_Mimrot
quelle
0

Das Problem ist, dass Sie die Umgebungsvariablen falsch konfiguriert haben. Sie müssen (unter Windows) das SDK verwenden von:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Weitere Informationen: https://facebook.github.io/react-native/docs/getting-started

Wählen Sie: Reagieren Sie auf Native CLI Quickstart im Abschnitt Android-Entwicklungsumgebung in Punkt 3. Konfigurieren Sie die ANDROID_HOMEUmgebungsvariable

Wenn Sie es so machen, wie Sie es gerade haben, müssen Sie jedes Projekt so konfigurieren, dass Ihre Umgebungsvariablen verwendet werden. Wenn sich das Projekt unter mehreren Personen mit ihrer Ausrüstung befindet, kann dies zu Problemen führen. Wenn Sie es so machen, wie ich es Ihnen gesagt habe, müssen Sie kein Projekt konfigurieren.

IvanAllue
quelle
0

Wenn Sie Android Studio installiert haben, öffnen Sie einfach das Project/androidmit Android Studio und es wird Sie benachrichtigen, den SDK-Speicherortpfad im Projekt zu wechseln.

Glückskeks
quelle
-2

Kopieren Sie das andere Android-Projekt local.properties Ihres Systems und fügen Sie es in den Android-Ordner des React-native-Projekts ein, das funktionieren soll.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
Champika Wishwanath
quelle
C \: \\ Benutzer \\ Champika \\ AppData \\ Lokal \\ Android \\ Sdk
Champika Wishwanath