React Native build Android nie powiódł się. Nie znaleziono lokalizacji SDK

473

Wystąpił błąd po uruchomieniu Androida

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
źródło

Odpowiedzi:

843
  • Przejdź do android/katalogu swojego reagującego projektu
  • Utwórz plik local.propertieso tej linii:
sdk.dir = /Users/USERNAME/Library/Android/sdk

Gdzie USERNAMEjest twoja nazwa użytkownika macOS

Grabież
źródło
* Co poszło nie tak: Wystąpił problem podczas konfigurowania projektu „: aplikacja”. > Katalog SDK „/ usr / local / android-sdk” nie istnieje. Ale tak naprawdę mój
SDK
3
Naprawiliście ten problem? Ja też się z tym teraz zmagam.
Gasper Kolenc
8
Udało mi się to naprawić, uruchamiając z Android Studio. Po wykonaniu tej czynności działa ona z wiersza polecenia.
Gant Laborde
Tak, utworzenie pliku local.properties rozwiązało mój problem. Dziwne, ale działa.
Sanj
113
Jeśli masz w sdk.dir = C:\\Users\\USERNAME\\AppData\\Local\\Android\\sdk
systemie
422
  1. Przejdź do swojego projektu React-native -> Android
  2. Utwórz plik local.properties
  3. Otwórz plik
  4. wklej ścieżkę zestawu SDK systemu Android jak poniżej

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

Zamień na USERNAMEswoją nazwę użytkownika

Teraz uruchom react-native run-androidw swoim terminalu.

Naveen TP
źródło
4
Przeniosłem swój zestaw SDK na dysk zewnętrzny. Działa dla mnie za pomocą macOS Sierra.
ruelluna 28.04.17
4
in linuxsdk.dir=/home/USERNAME/Android/Sdk
ebin,
sdk.dir = / home / NAZWA UŻYTKOWNIKA / Android / Sdk -> działa na Linuksie, ale Android Studio dla Linuxa musi być obecny i działać (stopniowanie)
MarcoZen
Pokazuje błąd * Co poszło nie tak: Wystąpił problem podczas konfigurowania projektu „: app”. > Katalog SDK „/ Users / chandni sharma / Library / Android / sdk” nie istnieje.
Chandni
2
@Chandni Upewnij się, że masz zainstalowany
zestaw
116

Możesz spróbować dodać ANDROID_PATH

export ANDROID_HOME=/Users/<username>/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Nish
źródło
10
Mam już ANDROID_PATHw środowisku (Ubuntu, plik .bashrc). Jednak z niektórych powodów nadal otrzymuję ten problem. Naprawiłem to, tworząc local.propertiesi umieszczając ścieżkę zgodnie z innymi odpowiedziami.
Hesam
3
Mam Maca i env var ANDROID_HOME nie pomógł. local.propertieszrobił to jednak.
Henrik
60

Otwórz ~/.bash_profilei dodaj:

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

wprowadź opis zdjęcia tutaj

notdrone
źródło
10
Pracuje. Pamiętaj, aby zrestartować Terminal lub wpisz, source ~/.bash_profileaby obowiązywały nowe linie eksportu.
Raptor,
Czy możesz dodać, jeśli jakieś ciało nie jest w stanie znaleźć pliku bash_profile, a następnie utwórz je, ponieważ po raz pierwszy nie mogą go znaleźć (So do I: p)
snehal agrawal
44

NIE AKTUALIZUJ local.properties , to zdecydowanie zła praktyka.

Tak to naprawiłem. Dodaj następujące elementy w ~/.bash_profilelub ~/.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

Uwaga: Kiedyś brew caskzainstalować Android SDK następujących instrukcji .

locropulenton
źródło
6
To najlepsza odpowiedź, nie trzeba zmieniać local.properties. Działa idealnie dla mnie
mike_dz
dlaczego to zła praktyka? naprawdę ciekawy, ponieważ wydaje się, że dokonanie zlokalizowanej zmiany jest znacznie bezpieczniejsze niż wprowadzenie zmiany w ścieżce systemowej
Robbie Milejczak
8
Ponieważ jeśli ten kod zostanie sprawdzony pod kontrolą źródła, następna osoba, która spróbuje go zbudować, skończy przeglądać tę stronę.
Dave Welling
31

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

snowcamel
źródło
1
Jest to najbezpieczniejszy sposób, ponieważ nie zmieniasz żadnych globalnych plików systemowych. A dla tych, którzy nie mają tego typu dostępu administratora do swojego komputera.
GravyPlaya
23

Jeśli korzystasz z systemu Windows, wyjdź (dodaj ukośniki) do odwrotnych ukośników i dwukropka w android/local.propertiespliku. Jeśli go nie ma, stwórz go

sdk.dir = C\:\\Android\\sdk
Sajjad Ashraf
źródło
2
W systemie Windows zestaw SDK systemu Android znajduje się w folderze C: \ Program Files \ Android \ android-sdk
Stephane
16

Zaktualizowano kroki dla React Native0.58, aby rozpocząć na MAC / Unix

  • Otwórz profil bash w terminalu

nano ~ / .bash_profile

eksport ANDROID_HOME = $ HOME / Library / Android / sdk

export PATH = $ PATH: $ ANDROID_HOME / emulator

eksport ŚCIEŻKA = $ ŚCIEŻKA: $ ANDROID_HOME / tools

eksport ŚCIEŻKA = $ ŚCIEŻKA: $ ANDROID_HOME / tools / bin

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

Control+S to save
Control+X to exit
Y to save changes
  • Zaktualizuj zmiany w terminalu

source ~/.bash_profile

  • Zatwierdź ścieżkę:

echo $PATH

  • Potwierdź, czy wszystko w porządku:

adb devices

Hitesh Sahu
źródło
Uratowałem moje życie :)
Marco Burrometo
Czasami musisz zamknąć i ponownie otworzyć terminal
Oluwatobi Samuel Omisakin,
14

Dla użytkowników systemu Windows

Jednym prostym rozwiązaniem jest ustawienie ścieżki SDK na listę Zmiennych środowiska.

  1. Przejdź do zmiennych środowiskowych. (Twój komputer> Właściwości)
  2. Utwórz nowe zmienne systemowe
  3. Ustaw nazwę zmiennej na ANDROID_HOME
  4. Ustaw wartość zmiennej na lokalizację Sdk Androida
  5. Naciśnij OK (3 razy dla 3 okien dialogowych)

Uwaga:

Android Sdk znajduje się zazwyczaj w

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

Pamiętaj, aby zamknąć obecny terminal, ponieważ terminal zawiera wszystkie wcześniej istniejące zmienne środowiskowe.

Ozesh
źródło
To jest to. Nie trzeba edytować pliku local.properties, dziękuję.
Rhadamez Gindri Hercilio
1
Działa jak urok 😊. Wielkie dzięki!
kapil pandey
Pamiętaj, aby ponownie uruchomić komputer
mtoninelli
1
ominęło mnie to „zamknij swój obecny terminal” omg i próbowałem, prawie się poddałem i ponownie przeczytałem hahaha dzięki! to zadziałało!
Michimcchicken
11

Naprawianie błędów ścieżki SDK w dystrybucjach systemu Linux


Twój projekt nie znajduje zestawu SDK w Ustawieniach projektu za pomocą podanej ścieżki, więc projekt musi wskazywać właściwy kierunek i masz kilka opcji, aby to osiągnąć, ale zacznijmy od znalezienia odpowiedniego folderu SDK w pierwszej kolejności.


Znajdowanie zestawu SDK


Z Menedżera pakietów


Jeśli używasz instalacji JRE opartej na pakietach, takiej jak Java 8 JRE, za pośrednictwem niestandardowego PPA w dystrybucji opartej na Debianie lub używasz OpenJDK , katalog najprawdopodobniej będzie / usr / lib / jvm / java-8-oracle (lub niezależnie od wybranej wersji). Ścieżkę tę można znaleźć w zmiennej środowiskowej JAVA_HOME :

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

Pobieranie ręczne


Jeśli zainstalowałeś za pomocą Java JRE / SDK , będzie to miejsce, w którym umieścisz folder, np. / Home / nazwa użytkownika /jdk-8u121_1.8.0 (lub coś podobnego).

Skrypty instalacyjne mogą nawet dodawać SDK do / opt / java-8-oracle , ale od tego momentu instrukcje instalacji Java pozostawiają położenie folderu w twoich rękach.


Android Studio 2.2


Wreszcie, jeśli korzystasz z Android Studio, zestaw SDK jest umieszczany tam, gdzie został ustawiony, aby umieścić pliki SDK pobrane za pomocą Menedżera SDK Studio. Przechodząc do Plik> Ustawienia> Wygląd i zachowanie> Ustawienia systemu> Android SDK , możesz znaleźć ustawienie lokalizacji SDK u góry z opcją zmiany, a domyślnym folderem jest ~ / Android / Sdk .

Ścieżka zestawu SDK systemu Android Studio

Ustawianie ścieżki SDK

Teraz, gdy wiemy, gdzie jest SDK, nadszedł czas, aby poinformować rodzimych użytkowników.


Opcja 1: Ustaw za pomocą local.properties


Ta metoda jest bardzo prosta i wszystko, czego potrzeba, to utworzenie pliku local.properties w następującym folderze, w którym Folder_projektu jest podstawą aplikacji React-Native:

Project_Folder / Android / App

W pliku local.properties chcesz ustawić zmienną sdk.dir na ścieżkę do folderu SDK:

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

Chociaż jest to najłatwiejszy sposób na rozwiązanie tego problemu, nie jest najlepszy, szczególnie jeśli pracujesz z wieloma projektami. Dla każdego projektu musisz utworzyć ten plik dla każdego projektu, a jeśli zmiany w folderze planują zmienić ten plik dla właściwości local.properties każdego projektu.

Po zapisaniu pliku uruchom ponownie komendę React-Native Run-Android .


Opcja 2: Ustawienia folderów ze zmiennymi środowiskowymi


Inną opcją jest ustawienie folderów SDK na lokalne zmienne środowiskowe, których domyślnie szuka React-Native. Aby to zrobić, dodamy ścieżkę ANDROID_HOME. Jako bonus możemy również dodać nasze narzędzia Android w tym samym miejscu. Musimy dodać to do plików .bash_profile lub .profile w naszym katalogu domowym, które są ładowane jako ostatnie, abyśmy mogli upewnić się, że nic innego nie przesłania wprowadzanych przez nas ustawień. Ponieważ znajdują się one w katalogu domowym, nie ma potrzeby edytowania z eskalowanymi uprawnieniami.

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

W pliku dodaj następujące wiersze zastępując folder SDK tym, który znalazłeś powyżej. Będę używał folderu Android Studio jako przykład:

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

Zapisz plik, a następnie zastosuj ustawienia profilu:

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

Jeśli folder Sdk wyświetla się poprawnie, gratulacje! Ponownie uruchom komendę React-Native i obserwuj, jak proces tworzenia aplikacji jest kontynuowany.


Jeśli nadal masz problemy


Jeśli z jakiegoś powodu pojawia się błąd „ > nie można znaleźć celu z ciągiem mieszania„ android-23 ”w: folderze / sdk / , należy upewnić się, że wersja kompilacji projektu i wersja zainstalowanego pakietu SDK są zgodne (React -Natywna wartość domyślna to 23.0.1). Domyślną wersję można znaleźć w folderze Project_Folder / android / app / build.gradle , a następnie wyszukać buildToolsVersion . Możesz oczywiście zmienić wersję z tego pliku lub w Android Studio przejść do pliku > Struktura projektu, aby zmienić zestaw SDK projektu . Nie sugerowałbym zmiany tej wersji, chyba że absolutnie wiesz, co robisz, w przeciwnym razie zainstaluj wersję zestawu SDK, którego szuka projekt.

DBrown
źródło
7

Musisz wpisać poprawną pełną ścieżkę. Nie używaj „~ / 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
cześć
źródło
7

Na Ubuntu, gdzie musisz zdobyć SDK oddzielnie od Android Studio, ścieżka jest dziwna, ale w React Native musisz utworzyć nazwę pliku local.properties.

Na przykład zajazd ~/AwesomeProject/androidi wstaw tę linię:
sdk.dir=/path/to/sdk/in/your/computer

Connelblaze
źródło
4

Sprawdź w swoim local.propertiespliku:

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

czy format jest poprawny czy nie

Makvin
źródło
4

Jeśli korzystasz z systemu Ubuntu, po prostu przejdź do katalogu Androida swojego rodzimego projektu reagującego i utwórz plik o nazwie local.propertiesi dodaj do niego ścieżkę sdk Androida w następujący sposób:

sdk.dir = /home/[YOUR_USERNAME]/Android/Sdk
Keivan
źródło
4

Usuń local.propertiesz folderu Androida w swoim projekcie reagowania i spróbuj.

Zrobiłem to i udało mi się.

Zaid Qureshi
źródło
3

Skopiuj inny projekt systemu Android local.properties i wklej do folderu Androida projektu React-native, który zadziała.

Rathore
źródło
Uznanie za sprytne i kuloodporne rozwiązanie;)
Hack06
3

To zadziałało dla mnie.

Biorę React Native Stephena Gridera na Udemy, a jeden ze studentów opublikował to w Wykładzie 50. Wklejono dosłownie w wierszu poleceń (oczywiście bez $).

$ export "ANDROID_HOME=/usr/local/opt/android-sdk" >~/.bash_profile
Utah
źródło
Nie rób tego. spowoduje błąd> The SDK directory '/usr/local/opt/android-sdk' does not exist.
thexande 7.04.17
3

Najlepsze rozwiązanie, jakie mogę znaleźć, to:

  1. Pobierz Android Studio i zestaw SDK do wyboru (nawet jeśli uważasz, że nie potrzebujesz, zaufaj mi, że byłby potrzebny do wydania pliku apk i niektórych ręcznych zmian w kodzie Androida).
  2. Plik> Nowy> Importuj, wskaż lokalizację, w której znajduje się Twój natywny projekt Androida.
  3. Jeśli pojawi się monit o pobranie dowolnego zestawu SDK, pobierz go. Może poprosić Cię o aktualizację ocen itp. Proszę aktualizować w razie potrzeby.
  4. Jeśli masz istniejący zestaw SDK systemu Android i znasz wersję, wszystko, co musisz zrobić, to dopasować tę wersję do build.gradle swojego projektu na Androida.

Tak będzie wyglądał plik stopni:

wprowadź opis zdjęcia tutaj

Jeśli wszystko poszło dobrze z konfiguracją komputera i możesz skompilować projekt za pomocą Android Studio, nic nie powstrzyma Cię przed budowaniem aplikacji za pomocą komendy android build cli build.

Dzięki takiemu podejściu nie tylko rozwiążesz problem pakietu SDK, ale także rozwiążesz wiele problemów związanych z konfiguracją komputera do programowania na Androida. Import automatycznie znajdzie lokalizację SDK i utworzy local.properties. Dlatego nie musisz się martwić ręcznymi interwencjami.

oparty na kodzie
źródło
2

Dla użytkowników systemu Linux

Twoja aplikacja nie otrzymuje ścieżki Androida-SDK, więc jeśli używasz Linuksa (ubuntu), musisz dodać plik o nazwie „local.properties” i zapisać go w folderze Androida, który jest tworzony w folderze aplikacji .

Musisz dodać poniższy wiersz w pliku local.properties, który jest ścieżką twojego android-sdk znajduje się w twoim systemie wewnątrz systemu, aby uruchomić aplikację.

sdk.dir=/opt/android-sdk/

zapisz i uruchom ponownie komendę React-Native Run-Android

LUB

możesz otworzyć terminal, wpisz

sudo nano ~ / .bashrc

i wklej poniższą ścieżkę na końcu pliku

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

i zrestartuj komputer, a następnie ponownie uruchom natywny run-android .

Uwaga: - Jeśli umieścisz ustawioną ścieżkę w pliku .bashrc, nie musisz nawet tworzyć pliku local.properties.

Yash Vekaria
źródło
Nie powinno to być ustalone na stałe, ale zależy od tego, gdzie zainstalowano zestaw SDK systemu Android Studio. W moim przypadku jest sdk.dir = "pathWhereAndroidSDKisbeeninstalled / Android / Sdk"
Carmine Tambascia
2

Jeśli tworzysz i android studioprojektujesz, możesz zobaczyć, że local.propertiesplik jest tworzony w katalogu głównym projektu. Kiedy tworzysz reagujący projekt natywny, nie tworzy on dla ciebie tego pliku. Musisz więc utworzyć go ręcznie. I muszę dodać do niej skd dir. Utwórz nowy plik w folderze Androida (w katalogu głównym). i umieść swoją ścieżkę SDK w ten sposób. sdk.dir=D\:\\Android\\SDK\\android_sdk_studio . Pamiętaj: usuń pojedynczy \ z podwójnym. Tak jak powyżej.

Nouman Ghaffar
źródło
2

Istnieją 2 sposoby rozwiązania tego problemu:

  1. Wystarczy uruchomić reagujący natywny projekt Androida w studio Android, automatycznie wygeneruje on plik local.properties w zareagowanym rodzimym projekcie Android.

  2. za. Idź do React-native Project -> Android
    b. Utwórz plik local.properties
    c. Otwórz plik
    d. Wklej ścieżkę zestawu SDK systemu Android jak poniżej

Duński Hassan
źródło
1

Upewnij się, że masz zainstalowany odpowiedni emulator i wersję Androida. To rozwiązało problem dla mnie.

Arel
źródło
1

W twoim katalogu projektów znajduje się folder o nazwie „android”, aw nim plik local.properties. Usuń plik, a kompilacja powinna działać poprawnie

Peter Hassaballah
źródło
1

Jeśli brakuje pliku local.properties, po prostu utwórz go w folderze „project / android” za pomocą „sdk.dir = / Users / apple / Library / Android / sdk” i upewnij się, że Twój SDK znajduje się w tej lokalizacji.

Aby utworzyć plik z niestandardowymi rozszerzeniami na komputerze Mac, skorzystaj z następującego łącza

Jak zapisać plik TextEdit (mac) z niestandardowym rozszerzeniem (.sas)?

Thiyan Yan
źródło
0

Istnieją dwa pliki stopni, zmień jeden w swoim C: \ myapp \ android \ build.gradle, a nie w katalogu nadrzędnym myapp.

Zamień 23.0.1 na wersję Android Build Tool zainstalowaną w moim przypadku 25.0.0

Uruchom Reaktywny-run-Android, aby zobaczyć swoją aplikację w emulatorze.

P.Ranjan
źródło
0

Wystarczy otworzyć folder Androida w projekcie przez Android Studio . Android studio stwórz konieczny plik (local.properties) i pobierz wersję SDK do uruchomienia Androida.

Rasoul Miri
źródło
0

Korzystam z systemu Windows i musiałem zmodyfikować ścieżkę sdk, niezależnie od tego, czy jest ona dostępna w środowisku PATH env. zmienna

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

Zmieniono ten plik:

MyProject\android\local.properties
NK_Mimrot
źródło
0

Problem polega na tym, że źle skonfigurowałeś zmienne środowiskowe. Musisz użyć (w systemie Windows) zestawu SDK:C:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk

Aby uzyskać więcej informacji: https://facebook.github.io/react-native/docs/getting-started

Wybierz: React Native CLI Quickstart w sekcji środowiska programistycznego Androida w punkcie 3. Skonfiguruj ANDROID_HOMEzmienną środowiskową

Jeśli zrobisz to tak, jak masz to teraz, musisz skonfigurować każdy projekt, aby używał zmiennych środowiskowych, a jeśli projekt ma kilka osób z ich wyposażeniem, może to powodować problem. Jeśli zrobisz to tak, jak ci powiedziałem, nie będziesz musiał konfigurować żadnego projektu.

IvanAllue
źródło
0

Jeśli masz zainstalowane studio Android, po prostu otwórz za Project/androidpomocą Android Studio, a powiadomi Cię o zmianie ścieżki lokalizacji SDK w projekcie.

Ciastko z wróżbą
źródło
-2

Skopiuj inny projekt systemu Android local.properties i wklej do folderu Androida projektu React-native, który zadziała.

sdk.dir=C\:\\Users\\paul\\AppData\\Local\\Android\\Sdk
champika wishwanath
źródło
C \: \\ Users \\ champika \\ AppData \\ Local \\ Android \\ Sdk
champika wishwanath