PANIC: Uszkodzona ścieżka systemowa AVD. Sprawdź swoją wartość ANDROID_SDK_ROOT

151

Po wpisaniu cordova run androidw terminalu pojawia się ten błąd:

Waiting for emulator to start...
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/Users/username/Library/Android/sdk]!

Dzieje się tak po wyeksportowaniu:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'

Przed eksportem otrzymałem:

Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

Jakieś pomysły, w których się mylę? Jestem pewien, że to jest katalog główny SDK, więc dlaczego pojawia się zepsuta ścieżka systemowa AVD?

d.boyd
źródło
Czy uda Ci się uruchomić emulator za pomocą AVD Manager? (Znajduje się w <AndroidSDK> \ AVD Manager.exe)
e666
4
Z tym samym problemem mam do czynienia w programie Visual Studio podczas tworzenia aplikacji wieloplatformowej. Mój tekst błędu to1>PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT 1>Emulator Nexus_5X_API_23 cannot be started.
RBT,
Właśnie otworzyłem menedżera Android SDK i zainstalowałem wszystko, co tam było (narzędzia, różne poziomy API, dodatki). Dosłownie! To rozwiązało mój problem. Chociaż po tym, co było związane z technologią HAXM firmy Intel wymaganą do uruchamiania emulatorów Androida, napotkałem kolejne problemy. Trzeba je rozwiązać inaczej.
RBT
2
Mogę uruchomić avd przez Android Studio. Otrzymuję ten błąd podczas próby uruchomienia z wiersza poleceń. Wystąpił błąd, PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [/usr/local/share/android-sdk]!gdy sprawdzam tę ścieżkę ->echo $ANDROID_SDK_ROOT /usr/local/share/android-sdk. Tak więc emulator ulega awarii, mimo że ścieżka jest poprawna.
Mike S.

Odpowiedzi:

163

Może wystąpić kilka różnych problemów podczas przenoszenia AVD lub SDK do innego katalogu, wymiany starego SDK na nowy lub w jakiś sposób uszkodzony SDK.

Poniżej opiszę wszystkie możliwe problemy, które znam i podam kilka sposobów ich rozwiązania.

Oczywiście zakładam, że masz utworzony dowolny AVD i znajduje się on w C:\Users\<user_name>\.android\avd(Windows) lub ~/.android/avd(Linux / MacOS).

Jeśli przeniosłeś .androidsię w inne miejsce, ustaw ANDROID_SDK_HOMEzmienną środowiskową na ścieżkę do katalogu nadrzędnego zawierającego Twój .androidi upewnij się, że Menedżer AVD pomyślnie znalazł Twoje urządzenie wirtualne.

Sprawdź także ścieżki w <user_home>/.android/avd/<avd_name>.ini


Niekompletna / uszkodzona struktura pakietu SDK

PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value

Te 2 błędy występują, jeśli emulator nie może znaleźć zestawu SDK lub zestaw SDK jest uszkodzony.

Przede wszystkim polecam więc w ogóle usunąć ANDROID_SDK_ROOTzmienną. Jest potrzebny tylko wtedy, gdy emulator znajduje się poza katalogiem SDK. Ale ogólnie twój emulator pozostaje w katalogu SDK. I w tym przypadku musi wykryć lokalizację SDK automatycznie . Jeśli tak nie jest, oznacza to, że prawdopodobnie Twój SDK ma niewłaściwe drzewo plików. Wykonaj następujące czynności:

  1. Sprawdź, czy katalog SDK ma przynajmniej te 4 katalogi: emulator, platforms, platform-tools, system-images. To jest bardzo ważne! Te katalogi muszą być obecne. Jeśli niektórych z nich nie ma, po prostu stwórz puste książki.

  2. Idź do <user_home>/.android/avd/<avd_name>i otwórz config.ini. Znajdź image.sysdir.1nieruchomość. Wskazuje katalog wewnątrz katalogu SDK, który zawiera rzeczywisty obraz systemu. Upewnij się, że ten katalog istnieje i zawiera pliki, takie jak build.prop, system.imgitp. Jeśli tak nie jest, musisz otworzyć Menedżera SDK i pobrać obrazy systemowe, których wymaga AVD (patrz poniżej).

Jeśli wszystko jest poprawnie skonfigurowane, kiedy te błędy ANDROID_SDK_ROOTmuszą zniknąć. Jeśli tak nie jest, możesz teraz spróbować ustawić ANDROID_SDK_ROOTzmienną.


Wymagane pakiety i HAXM nie są zainstalowane

Następnym problemem, z którym możesz się spotkać, jest to, że emulator zaczyna się uruchamiać, ale zawiesza się lub natychmiast kończy pracę. To prawdopodobnie oznacza, że ​​nie masz zainstalowanych wszystkich wymaganych pakietów.

Innym możliwym błędem jest:

Nie można automatycznie wykryć pliku binarnego ADB. Niektóre funkcje emulatora nie będą działać, dopóki niestandardowa ścieżka do ADB nie zostanie dodana na stronie ustawień rozszerzonych.

Tak więc, aby pomyślnie uruchomić dowolny AVD, musisz mieć pewność, że przynajmniej te pakiety są zainstalowane:

emulator (Android Emulator)
platform-tools (Android SDK Platform-Tools)
tools (Android SDK Tools)

I jak wspomniałem wcześniej, na przykład musisz zainstalować obrazy systemowe, których używa AVD system-images;android-25;google_apis;x86

Pamiętaj, że najnowsze wersje w SDK nie mają wersji autonomicznej SDK Manager.exe. Zamiast tego musisz albo użyć Android Studio, albo tools\bin\sdkmanager.bat(Linux / MacOS prawdopodobnie ma shpliki).

Aby wyświetlić listę wszystkich dostępnych pakietów, użyj sdkmanager --listlubsdkmanager --list --verbose

Aby zainstalować pakiety, użyj sdkmanager <package1> <package2> ...

Polecam również ręcznie zainstalować HAXM w systemie.


Pliki Qcow2 odnoszą się do nieprawidłowych / nieistniejących obrazów podstawowych

Ostatni problem, o którym wspomnę, ma miejsce, gdy próbujesz przenieść AVD lub SDK z jednego komputera lub katalogu na inny. W takim przypadku możesz otrzymać taki błąd:

qemu-system-i386.exe: -drive if = none, overlap-check = none, cache = unsafe, index = 0, id = system, file = C:\Users\<old_user_name>\.android\avd\<avd_name>.

avd \ system.img.qcow2, tylko do odczytu: nie można otworzyć pliku zapasowego: nie można otworzyć ' <old_sdk_dir>\system-images\android-22\google_apis\x86\system.img': nieprawidłowy argument

Istnieją 2 sposoby, aby to naprawić:

  1. Jeśli nie dbasz o dane, które zawiera AVD, po prostu usuń wszystkie qcow2pliki z katalogu AVD (np. Z <user_home>/.android/avd/<avd_name>). W takim przypadku otrzymasz czystą wersję Androida, jak po twardym resecie.

  2. Jeśli dane na emulatorze są dla Ciebie ważne, to otwórz wszystkie qcow2pliki jeden po drugim za pomocą dowolnego edytora HEX (wolę HxD ), znajdź ścieżkę do imgpliku podstawowego i zmień go na właściwy w Overwritetrybie (aby zachować rozmiar pliku). Następnie wybierz ścieżkę i uzyskaj jej długość w postaci szesnastkowej (np 2F.). 2Freprezentuje ukośnik ASCII /. Umieść go na miejscu 13:

Edytuj pliki qcow2 Androida za pomocą edytora HxD HEX

PS: Nie jestem pewien, ale prawdopodobnie jest kilka narzędzi, takich jak qemu-img, które pozwalają ustawić inny obraz podstawowy. Cóż, dla mnie łatwiej jest ręcznie edytować plik binarny.


Teraz prawdopodobnie będziesz w stanie pomyślnie uruchomić swoje urządzenie wirtualne z Androidem. Mam nadzieję :)

Oleg Cherr
źródło
Innego powodu może brakować hw.cpu.archw config.ini
daserge
2
Postępowałem zgodnie ze wszystkimi instrukcjami i nadal mam zepsutą ścieżkę systemową AVD.
rolki
Niesamowite. Dobra robota z podstawowymi plikami qcow! Czy znasz bardziej ogólny sposób ponownego bazowania plików qcow? Chciałbym podzielić się moim AVD z kilkoma osobami ...
Amit Moran
@daserge al moje pliki „.ini” mają dziwny format (brak podziałów wierszy po każdym parametrze), czy to normalne / w porządku?
J3STER,
1
Dzięki, w moim przypadku brakowało folderu platform-tools, więc zainstalowałem go za pomocą polecenia tools/bin/sdkmanager "platform-tools". Trudno było znaleźć przyczynę błędu z powodu tego głupiego komunikatu o błędzie („PANIKA: Nie można znaleźć ścieżki systemowej AVD. Proszę zdefiniować ANDROID_SDK_ROOT”), który nie
wskazywał
128

Na komputerze Mac: zainstalowałem zarówno android-sdkprzy użyciu, brewjak i Android Studio. W jakiś sposób posiadanie 2 instalacji powodowało ten problem. Kiedy odinstalowałem instalację brew zestawu SDK przy użyciu brew cask uninstall android-sdki dodałem następujące zmienne do mojego pliku env. Zadziałało.

export ANDROID_HOME=/Users/<Username>/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
EFreak
źródło
18
Wcześniej zainstalowałem zestaw SDK dla Androida przy użyciu brew, postępując zgodnie z samouczkiem Nativescript. Po zainstalowaniu Android Studio okazało się, że emulator się nie uruchamia. Twoja poprawka rozwiązała mój problem. Dziękuję Ci!
Cocoanut
2
Na mnie też to zadziałało. Zainstalowałem również android-sdkpodczas instalacji NativeScript. Emulator uruchamia się teraz bezpośrednio z Android Studio, ale nie przez NativeScript (tns z systemem Android)
Mudlabs
3
To rozwiązało mój problem, ale bez usuwania wersji Androida-SDK brew.
mrisek
1
narzędzia wiersza poleceń są przestarzałe. Najlepszym krokiem naprzód jest prawidłowe zainstalowanie AS i unikanie beczki z zaparzeniem facebook.github.io/react-native/docs/…
Harry Moreno
1
Po wielu poszukiwaniach ostatecznie rozwiązało to nasz problem. Dziękuję bardzo!!!
user3575337
27

To rozwiąże Twój problem w systemie macOS:

pico ~/.bash_profile

export ANDROID_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_SDK_HOME=/Users/$USER/Library/Android/sdk
export ANDROID_AVD_HOME=/Users/$USER/.android/avd
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_AVD_HOME

source ~/.bash_profile
cuasijoe
źródło
4
Po wielu próbach, była to jedyna praca, bardzo dziękuję: D
Alan Cordova.
Działa idealnie Dzięki.
Herman Demsong
@SundayOkoi trafia do twojego katalogu domowego
1800 INFORMACJE
To samo u mnie. Ten działa dla mnie. Chociaż wprowadziłem drobne zmiany w tym.
Edper
15

Usuwanie błędu podczas korzystania z zestawu SDK Homebrew dla systemu Android jako domyślnego zestawu SDK

Jako @EFreak zainstalowałem android-sdk z homebrew (menedżerem pakietów dla komputerów Mac). Musiałem wykonać poniższe czynności, aby naprawić błąd, ponieważ postępowałem zgodnie z samouczkami języka natywnego i napotkałem błąd. Jeśli tak jak ja zamierzasz używać wersji brew zamiast wersji android-sdk, użyj tej odpowiedzi (pozwoli ci to na użycie tns run androidinterfejsu API natywnego skryptów ), a jeśli chcesz, aby domyślny Android Studio Android-sdk, postępował zgodnie z odpowiedzią @ EFreak.

Konfigurowanie Android Studio do korzystania z Android SDK Homebrew

Zasadniczo wystarczy zmienić lokalizację Android SDK w Android Studio. Najpierw otwórz projekt w Android Studio. Następnie otwórz Menedżera SDK, klikając ten przycisk.

Lokalizacja przycisku menedżera SDK systemu Android

Następnie, gdy pojawią się domyślne preferencje dla menedżera Android SDK, kliknij edytuj obok lokalizacji Android SDK.

wprowadź opis obrazu tutaj

Znajdowanie lokalizacji pakietu Homebrew Android SDK

Następnie musisz faktycznie zaktualizować lokalizację sdk na ekranie konfiguracji komponentów sdk, mój brewandroid-sdk znajdował się tutaj /usr/local/share/android-sdk. Możesz sprawdzić, gdzie jest zainstalowany twój, uruchamiając, brew cask info android-sdka następnie w dolnej części wyniku powinien powiedzieć:

You can control android sdk packages via the sdkmanager command.
You may want to add to your profile:

  'export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"'

Wartość zmiennej exported ANDROID_SDK_ROOT(która tutaj jest /usr/local/share/android-sdk) to lokalizacja zestawu SDK systemu Android.

Następnie musisz kliknąć przycisk lokalizacji Android SDK (oznaczony jako 1 na zdjęciu) i wkleić lokalizację Homebrew Android SDK.

wprowadź opis obrazu tutaj

Następnie po prostu zakończ kreatora, instalując dowolne pakiety. Na tym etapie musiałem usunąć i odtworzyć emulatory mojego urządzenia, ale po tym wydawało się, że działa świetnie.

Ustawianie zmiennych środowiskowych zestawu Android SDK, aby wskazywały na zestaw SDK systemu Android firmy Homebrew

Możesz również chcieć upewnić się, że jeśli wybierasz się na trasę Homebrew, twój skrypt ustawień profilu ma zmienne środowiskowe ANDROID_HOMEi ANDROID_SDK_ROOTustawione na lokalizację Homebrew sdk systemu Android, w przeciwnym razie powyższe nie będzie jeszcze działać. To może się zmienić z umieszczeniem Homebrew jeśli zainstalowany Homebrew przed instalacją Android Studio jak wskazano w tej odpowiedzi przez @Jamie Armor . Można sprawdzić zmienne środowiskowe dla Android SDK są ustawione prawidłowo, uruchamiając echo $ANDROID_HOMEi echo $ANDROID_SDK_ROOTi sprawdzeniu, że obaj pokazują Homebrew lokalizację Android SDK.

Jeśli chcesz zmienić wartości ANDROID_HOME i ANDROID_SDK_ROOT, możesz to zrobić w ustawieniach swojego profilu na komputerze Mac, które prawdopodobnie będą w postaci ~/.bash_profile„~ / .bashrc” lub „~ / .profile” i zdefiniowane w ten sposób:

export ANDROID_HOME="/usr/local/share/android-sdk"
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"

Musisz zmienić wartości obu eksportów na prawidłowe wartości lokalizacji zestawu SDK systemu Android Homebrew, a następnie zapisz plik. Aby sprawdzić, czy zostały wpisane prawidłowe wartości, należy najpierw zamknąć i otworzyć terminal, który powinien ponownie uruchomić plik i zresetować zmienne środowiskowe, lub można pobrać plik, uruchamiając, source <profile file name>gdzie jest edytowany i zapisany plik profilu. Następnie możesz ponownie uruchomić echo $ANDROID_HOMEi echo $ANDROID_SDK_ROOTsprawdzić, czy mają lokalizację Homebrew android sdk.

Jan
źródło
3
Ty bohaterze! Dokumentacja NativeScript całkowicie nie wspomina o tym aspekcie.
Jamie Birch
Nie sądzę, że potrzebujesz instalacji brew, aby móc uruchomić. tns run android.To działało dla mnie, zanim uruchomiłem ten skrypt instalacyjny języka natywnego. Scenariusz zepsuł wiele rzeczy -_-
Felipe Centeno
1
@FelipeCenteno tak, nie potrzebujesz do tego naparu. Tak właśnie to robisz, jeśli już zainstalowałeś wszystkie Android SDK z brew. Możesz użyć odpowiedzi EFreaks, jeśli używasz tylko domyślnego zestawu SDK Android Studio.
John
14

Oznacza to, że Twoja ścieżka do narzędzi jest nieprawidłowa. Tak to wygląda na Macu używającym naparu. Uważaj na wersję.

export ANDROID_SDK_ROOT='/usr/local/Cellar/android-sdk/24.4.1_1'

W twoim przypadku wygląda na to, że powinieneś uruchomić to:

export ANDROID_SDK_ROOT='/Users/username/Library/Android/sdk'
TechnoTim
źródło
3
Błąd jest nadal ten sam. Również dwukrotnie sprawdziłem i jestem ANDROID_SDK_ROOTustawiony .bash_profile. echo $ANDROID_SDK_ROOTPodaje nawet poprawną ścieżkę: /usr/local/Cellar/android-sdk/24.4.1_1 używam macOS z HomeBrew.
Shivam Maheshwari
12

Miałem ten sam problem w moim Windows10,
rozwiązałem mój problem, wykonując poniższe czynności.
otwórz Android Studio
- Narzędzia
- Menedżer SDK
- skopiuj Android SDK Lokalizacja
Android SDK Lokalizacja
ustaw zmienną środowiskową systemu
ANDROID_HOME i zmienną środowiskową systemu ANDROID_SDK_ROOT

psaren
źródło
Mam ten sam problem. Dzięki.
Jason Ching,
Miałem ten sam problem i rozwiązałem go zgodnie z tymi instrukcjami.
SuKu
8

Miałem ten sam problem po aktualizacji emulatora. Problem został rozwiązany po dodaniu zmiennej ANDROID_AVD_HOME wprowadź opis obrazu tutaj

Ważne: w ścieżce nie można używać znaków spoza zestawu ASCII. Na koniec ponownie zainstaluj urządzenia wirtualne lub ręcznie zastąp ścieżkę urządzenia w pliku Configuration settings.ini, który zawiera starą ścieżkę ze znakami spoza zestawu ASCII.

C:\Users\<user_name>\.android\avd\<avd_name>
m3los
źródło
Tak, znaki spoza ASCII to ważne. Po usunięciu tych znaków wszystko działa dobrze. Jak usunąć superuser.com/questions/1355431/ ...
Alex Z
8

Uruchomiłem Android Studio na Windows 10, ustawiłem ANDROID_HOME i ANDROID_SDK_ROOT na Zmienne środowiskowe i nadal otrzymałem błąd.

Okazuje się, że zapomniałem pobrać urządzenie.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Po pobraniu „Brakującego obrazu systemu” wszystko działa poprawnie.

Weihui Guo
źródło
2
mój Boże. Ustawiłem tak wiele zmiennych środowiskowych, których nie trzeba było ustawiać. wszystko, co musiałem zrobić, to coś pobrać. Dzięki.
Andy
7

W moim przypadku było zepsute, ponieważ ANDROID_HOME i ANDROID_SDK_ROOT były różne, więc gdy ustawiłem ANDROID_HOME na to samo co ANDROID_SDK_ROOT, zaczęło działać.

jc12
źródło
1
Tak, dziękuję, że działa dla mnie i jak powiedział @Blagojce dodałem, że C: \ Users \% username% \ AppData \ Local \ Android \ sdk \ w obu zmiennych ANDROID_HOME i ANDROID_SDK_ROOT
Abdelhadi Abdo
To też rozwiązało problem. Najprawdopodobniej mam zainstalowany zestaw SDK systemu Android przed zainstalowaniem programu Visual Studio / Xamarin.
thowa
6

Odpowiedź Olega Cherrsa doprowadziła mnie do rozwiązania. Jak wspomniał

Przejdź do /.android/avd/ i otwórz config.ini. Znajdź właściwość> image.sysdir.1. Wskazuje katalog w SDK zawierający obrazy systemowe>. Upewnij się, że ten katalog istnieje i zawiera pliki takie jak build.prop,> system.img, itp. Jeśli tak się nie stanie, musisz otworzyć Menedżera SDK i> pobrać obrazy systemu, których wymaga AVD (patrz poniżej).

Znalazłem odpowiedni plik emulatora * .ini w katalogu avd. Tam zmodyfikowałem wpis „image.sysdir.1”. Zastąpiłem względną ścieżką bezwzględną (dołącz z przodu ANDROID_SDK_ROOT). Następnie emulator został uruchomiony z wiersza poleceń zgodnie z oczekiwaniami.

Xerox23
źródło
U mnie też działało, jedyne rozwiązanie, które działa pod WIN10 x64 z poprawnie ustawionymi wszystkimi zmiennymi PATH. (FYI: dodałem bezwzględną ścieżkę ANDROID_SDK_ROOT zamiast samej zmiennej)
Max Methot
Poszedłem do, C:\Users\edkol\.android\avdale nie widzę żadnego config.ini - czy muszę go dodać? jeśli tak, gdzie mogę to dostać?
ekolis,
6
  • Brak katalogu Platfoms w / usr / local / share / android-sdk .

  • Utworzyłem pusty katalog o nazwie platformy, który rozwiązał problem.

Olivier Maina
źródło
5

ok, mogę uruchomić Androida z cordova, zmieniłem ANDROID_HOME na,

export ANDROID_HOME=/usr/local/opt/android-sdk
d.boyd
źródło
5

Powinieneś dodać emulator AVD. Przejdź do tej lokalizacji:

C:\Users\%username%\AppData\Local\Android\sdk\

uruchom Menedżera AVD iw drugiej zakładce (Definicje urządzeń) kliknij przycisk „utwórz AVD”.

Blagojce
źródło
3

Właśnie dzisiaj napotkałem ten problem i udało mi się go rozwiązać.

Emulator: [140735565005632]: BŁĄD: android / android-emu / android / qt / qt_setup.cpp: 28: Nie znaleziono biblioteki Qt w / Users / your_user_name / Library / Android / sdk / emulator / lib64 / qt / lib

15:08 Emulator: nie można uruchomić '/ Users / your_user_name / Library / Android / sdk / emulator / qemu / darwin-x86_64 / qemu-system-x86_64': nie ma takiego pliku ani katalogu

Rozwiązanie było całkiem proste. Wystarczy zainstalować emulator Androida przez Android Studio => narzędzia => Android => Menedżer SDK => narzędzia SDK => wybierz emulator Androida => Zastosuj

Używam MacBooka Pro na macOS High Sierra i uważam, że twój komputer nie ma nic wspólnego z tym problemem. Emulator nie jest oczywiście instalowany podczas pierwszego uruchomienia menedżera instalacji Android Studio, przynajmniej dla mnie, z Android Studio 3.0.1

Upewnij się również, że masz zdefiniowane ścieżki w pliku .bashrc lub .zshrc w następujący sposób:

export ANDROID_HOME=/Users/your_user_name/Library/Android/sdk
export ANDROID_SDK_ROOT=$ANDROID_HOME
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
IsNotDefined
źródło
3

Jestem w systemie Windows 10 i problem polegał na tym, że katalog avd na moim komputerze zawierał znaki spoza ASCII.

Oto co należy zrobić:

Uruchom cmd jako administrator

Uruchom następujące polecenie:

mklink /D C:\\.android C:\\Users\\-yourUsername-\\.android

(Spowoduje to utworzenie symbolicznego połączenia między ścieżką ze znakami spoza zestawu ASCII a nową)

W zmiennych środowiskowych dodaj ANDROID_AVD_HOMEzmienną z wartością C:\\.android\avd.

Teo Papavasilleiou
źródło
2

Sprawdź, czy obraz systemu używany przez AVD został pobrany pod $ANDROID_SDK_ROOT/system-images/

aleung
źródło
2

Miałem ten sam problem, który po ustawieniu następujących zmiennych ścieżki zniknął. Uwaga Ścieżka główna AVD różni się od pozostałych trzech.

wprowadź opis obrazu tutaj

Hitesh Sahu
źródło
2

NativeScript

Dla każdego, kto ma problem z uruchomieniem emulatora Androida przez NativeScript, prawdopodobnie zmienne env ANDROID_HOME i ANDROID_SDK_ROOT zostały nadpisane.

Udało mi się stworzyć problem dla siebie, instalując Android Studio, aby wygenerować inny emulator. Zrobiłem to po tym, jak już zainstalowałem zestaw SDK systemu Android za pośrednictwem domowego parzenia.

Jeśli więc podczas instalacji NativeScript wybrałeś instalację Android SDK przez HomeBrew, NativeScript ustawi powyższe w następujący sposób:

ANDROID_HOME=/usr/local/share/android-sdk
ANDROID_SDK_ROOT=/usr/local/share/android-sdk

Późniejsza instalacja Android Studio nadpisze te wartości jako:

ANDROID_HOME=/Users/[User]/Library/Android/sdk
ANDROID_SDK_ROOT=/Users/[User]/Library/Android/sdk

Więc naturalnie występuje konflikt ze studiem Android i instalacją pakietu SDK systemu Android przez NativeScript / Brew. Usunięcie jednego lub drugiego i / lub sprawdzenie, czy zmienna env zawiera poprawną ścieżkę, powinno spowodować uruchomienie emulatora.

Jamie Armor
źródło
1

Po pewnym czasie wypróbowanie innych „rozwiązań” Google, jedynych rzeczą, która zadziałała, po ustawieniu zmiennej środowiskowej ANDROID_SDK_ROOT w systemie Windows, a także dodaniu i usunięciu zmiennych ANDROID_HOME i ANDROID_SDK_HOME, była odpowiedź Xerox23 - edycja pliku config.ini AVD do twardego kodu wartość ANDROID_SDK_ROOT do właściwości image.sysdir.1.

Było to przy użyciu Android Studio 3.0.1 i emulatora 26.1.4, uruchamiając urządzenie wirtualne z AVD Manager z poziomu Android Studio.

AndrWeisR
źródło
1

W przypadku komputera z systemem Windows: po wypróbowaniu wielu ustawionych ścieżek, usuń ścieżkę itp. Ostatecznie działa zlokalizowanie folderu C:\Users\johndoe\.androidi usunięcie go. po tym możesz uruchomić swoje Android Studio, poprosi Cię o pobranie i zainstalowanie nowego AVD, a następnie zastąpi i utworzy nowy nowy folder i pliki. To rozwiązuje problem.

Delino
źródło
Cześć, dobra rada. Wszyscy ze starszymi instalacjami muszą to zrobić. Jeśli zastosujesz się do innych przepisów i nie uda Ci się ich zastosować, Twoja odpowiedź załatwi sprawę. Dzięki!
lm2a
1

Aby rozwiązać ten problem, musiałem zainstalować pakiet z brakującym obrazem systemu za pomocą SDK Manager.exe (w „C: \ Program Files (x86) \ Android \ android-sdk”). Zauważyłem, że w folderze „C: \ Program Files (x86) \ Android \ android-sdk \ system-images” brakuje obrazu systemu, którego potrzebowałem („android-23”).

Po uruchomieniu SDK Manager.exe i zainstalowaniu odpowiednich pakietów mogłem uruchomić emulator w Android Studio.

Oto rozwiązanie, które zadziałało dla mnie:

https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/creating_an_android_emulator.html

Glauber
źródło
1

Wykonaj poniższe czynności, aby rozwiązać problem

1.

export ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/bin

2.

Go to android studio preferences => Build, Execution, Deployment => Build Tools => Gradle => Android studio  => Enable embedded Maven Repository should be selected.

3.

Go to android studio preferences => Appearance & Behavior => System Settings => Android SDK => Go to SDK Tools and select Android Emulator
Gampesh
źródło
1

Rozwiązałem ten problem, usuwając plik /usr/local/share/android-sdk, ponieważ ten plik został utworzony, gdy próbowałem z homebrew.

export ANDROID_HOME=/Users/<username>/Library/Android/sdk

export ANDROID_SDK_ROOT=/Users/<username>/Library/Android/sdk

export ANDROID_AVD_HOME=/Users/<username>/.android/avd

Wystarczy ....

Md. Jahir Alam Raju
źródło
1

Otwórz swoje studio Android, a następnie skoncentruj się na pasku narzędzi.

Następnie przejdź do narzędzi> Menedżer SDK

Wygląd i zachowanie> Ustawienia systemowe> Android SDK

Teraz na karcie skopiuj lokalizację Android SDK stąd Lokalizacja Android SDK

następnie przejdź do zmiennych środowiskowych, a następnie ustaw ścieżkę wraz z tymi zmiennymi

  1. ANDROID_HOME
  2. ANDROID_SDK_ROOT

Zmienne środowiska

Ahmer Shahid
źródło
1
  1. Usuń wcześniej utworzone urządzenia.
  2. Zamknij studio Android.
  3. Otwórz: Panel sterowania -> System i zabezpieczenia -> System -> Zaawansowane ustawienia systemu -> Zmienne środowiskowe.
  4. Utwórz nową zmienną „ANDROID_SDK_HOME” i ustaw nową ścieżkę (w moim przypadku była to F: \ Coding2019 \ Android \ AVDdevices). Wciśnij „ok”.
  5. Otwórz Android Studio.
  6. Utwórz nowe urządzenie. Po utworzeniu w rozwijanym menu kliknij „Wyświetl szczegóły”, aby zobaczyć nową ścieżkę nowego AVD.
Oleksii Khoroshun
źródło
1

ANDROID_SDK_HOME jest wskaźnikiem do katalogu głównego twojego pliku „.android”, który jest domyślnie tworzony w „C: \ Users \ name \ .android”, a NIE do katalogu głównego folderu SDK. Następnie: - Przypisz ANDROID_SDK_HOME do folderu głównego SDK nie zadziała. - Jeśli ścieżka do pliku „.android” zawiera znaki inne niż ASCII, nie będzie działać. - Folder AVD musi znajdować się w bieżącym pliku „.android”.

Więc odpowiedź jest taka:

  • W razie potrzeby zmień folder SDK, tak jak poprzednie odpowiedzi (w projekcie w Android Studio).
  • Zamknij Android Studio.
  • Panel sterowania> System> Zaawansowane ustawienia systemu> Zmienne środowiskowe.
  • Dodaj nową zmienną użytkownika: Nazwa zmiennej: ANDROID_SDK_HOME Wartość zmiennej: C: \ src (lub dowolny folder, który nie ma problemów ze znakami spoza zestawu ASCII lub z uprawnieniami SO). ŚCIEŻKA, KTÓREJ WPISZ, NIE MOŻE BYĆ ROOT FOLDER TWOJEGO ANDROID SDK !! !
  • Otwórz Android Studio. Upewnij się, że folder o nazwie „.android” został utworzony w nowej lokalizacji.
  • Usuń utworzone urządzenie wirtualne z systemem Android (AVD).
  • Zamknij i otwórz Android Studio.
  • Utwórz nowy AVD i zobacz, jak dzieje się magia.

Twoje zdrowie.

Andre Lopes
źródło
1

中国 的 小 伙伴 注意! 原因 是 avd 目录 不能 包含 中文 Wypróbowałem wszystkie powyższe metody i nadal otrzymuję błąd i zastanawiam się, czy to dlatego, że mój katalog avd zawiera chińskie znaki. więc zmieniam domyślny katalog avd w następujących krokach i zadziałało. 1. utwórz folder, którego ścieżka nie zawiera znaków spoza ASCII 2. skopiuj lub wytnij domyślny folder avd $HOME/.androidponiżej właśnie utworzonego folderu 3. dodaj PATH ADNDROID_SDK_HOME, a Android Studio znajdzie avd poniżej $ ADNDROID_SDK_HOME / .android / avd

w końcu się udało! :>

叶局长
źródło
1

Poprawka, jeśli użytkownik zawiera znaki spoza zestawu ASCII

W przypadku osób otrzymujących „ PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT” może to być spowodowane tym, że użytkownik w grupie użytkowników zawiera znaki spoza zestawu ASCII .

Dlatego zarówno SDK, jak i folder .android z plikiem AVD folderem należy przenieść do innego folderu.

Zmiana ścieżki SDK:

Otwórz Android Studio , przejdź do konfiguracji i wybierz Menedżera SDK. Zmień bieżącą lokalizację Android SDK na np. „C: \ Android \ Sdk” (lub gdzieś indziej, ale nie w folderze użytkownika zawierającym znaki spoza zestawu ASCII) .

Następnie dodaj następujące zmienne systemowe:

ANDROID_SDK_ROOT C:\Android\Sdk
ANDROID_HOME C:\Android\Sdk

Zmiana ścieżki AVD:

Aby zmienić lokalizację folderu AVD (zwykle umieszczonego w „ C:\Users\<user name>\.android\avd”), musisz zmienić miejsce, w którym .androidjest umieszczony. Najpierw zamknij Android Studio , a następnie dodaj zmienną systemową ANDROID_SDK_HOMEze ścieżką do nowego miejsca, w którym chcesz .androidsię znaleźć, np. C:\Android_SDK_HOMEJak w innym przykładzie:

ANDROID_SDK_HOME C:\Android_SDK_HOME

Po dodaniu tego, uruchom Android Studio . Następnie zamknij ponownie. Teraz .androidpowinien pojawić się folder o nazwie .

Następną i ostatnią rzeczą, którą musisz zrobić, jest ustawienie ANDROID_AVD_HOMEzmiennej systemowej. W tym przypadku będzie toC:\Android_SDK_HOME\.android\avd

ANDROID_AVD_HOME C:\Android_SDK_HOME\.android\avd

Mam nadzieję, że dla niektórych rozwiązuje to problem. :)

Pritzier
źródło
Bracie bardzo ci dziękuję. Właśnie szukałem w Google tego problemu, przyszedłem na twój nowy post i zadziałało!
JangoCG
0

Natknąłem się na ten problem, odkąd korzystałem z React Native od samego początku. Google wycofał narzędzia wiersza poleceń i nalega na Android Studio. Rozwiązaniem dla mnie było usunięcie narzędzi wiersza poleceń

rm -rf /usr/local/Cellar/android-sdk

rm /usr/local/bin/android

otwórz AS zainstaluj sdk v6 zgodnie z instrukcją https://facebook.github.io/react-native/docs/getting-started.html#1-install-android-studio

utwórz nowe AVD i uruchomi się bez błędów

Harry Moreno
źródło
0

Błędy w rzeczywistości są różne. Pomocne jest uruchomienie ./emulator with -verboseopcji, ponieważ pokaże rzeczywiste błędy.

deathemperor
źródło