Nie udało się znaleźć zmiennej środowiskowej „ANDROID_HOME”

134

Próbuję zbudować projekt Ionic-Android i mam zainstalowany pakiet SDK dla systemu Android.

Pakiety zainstalowane przez menedżera SDK

Nazwa mojego projektu to myApp. Pomyślnie dodałem platformę Android do myApp. Ale kiedy próbuję zbudować projekt

~/myApp$ sudo ionic build android

wynik jest

Running command: /home/hari/myApp/hooks/after_prepare/010_add_platform_class.js /home/hari/myApp
  add to body class: platform-android
  ERROR building one of the platforms: Failed to find 'ANDROID_HOME'  environment variable. Try setting setting it manually.
  Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.
You may not have the required environment or OS to build this project
Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually.
Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.

zobacz zmienne ANDROID_HOME i PATH

echo $ANDROID_HOME
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hari/Android/Sdk

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hari/Android/Sdk/tools:/home/hari/Android/Sdk/platform-tools:/usr/local/bin:/opt/gradle/bin

Widziałem prawie tego samego rodzaju pytania dotyczące przepełnienia stosu, ale żadne nie działa dla mnie. Czy jest coś nie tak z moją konfiguracją androida-sdk? Jak mogę zbudować ten projekt?

Hari Krishnan
źródło
2
Twój ANDROID_HOME wygląda bardziej jak PATH. Kiedy echo, powinno powrócić /home/hari/Android/Sdk(zakładając, że to prawda)
OneCricketeer
Zobacz moją odpowiedź na [To pytanie] ( stackoverflow.com/questions/35110403/… ), to naprawi to za Ciebie
Ramy hakam
Muszę to wprowadzić za każdym razem, gdy otwieram terminal, jak mam to utrzymać?
Luke Flournoy
@LukeFlournoy Zobacz „Priori Things” (kroki 1 i 2) tej odpowiedzi
Diego Somar

Odpowiedzi:

204

Możesz chcieć potwierdzić, że środowisko programistyczne zostało ustawione poprawnie.

Cytat z spring.io :

Skonfiguruj środowisko programistyczne Androida

Aby móc tworzyć aplikacje na Androida, musisz zainstalować Android SDK. Zainstalowanie Android SDK powoduje również zainstalowanie AVD Manager, graficznego interfejsu użytkownika do tworzenia i zarządzania wirtualnymi urządzeniami Android (AVD).

  1. Z witryny internetowej systemu Android pobierz odpowiednią wersję pakietu Android SDK dla swojego systemu operacyjnego.

  2. Rozpakuj archiwum do wybranej lokalizacji. Na przykład w systemie Linux lub Mac możesz umieścić go w katalogu głównym swojego katalogu użytkownika. Zobacz Android Developers stronę internetową w celu uzyskania dodatkowych informacji instalacyjnych.

  3. Skonfiguruj ANDROID_HOMEzmienną środowiskową na podstawie lokalizacji zestawu Android SDK. Dodatkowo rozważ dodanie ANDROID_HOME/toolsi ANDROID_HOME/platform-toolsdo swojej PATH.

Mac OS X

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Linux

export ANDROID_HOME=/<installation location>/android-sdk-linux
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Windows

set ANDROID_HOME=C:\<installation location>\android-sdk-windows
set PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

Pobieranie Android SDK nie obejmuje określonych platform Android. Aby uruchomić kod z tego przewodnika, musisz pobrać i zainstalować najnowszą platformę SDK. Robisz to za pomocą Android SDK i AVD Manager, które zostały zainstalowane w poprzedniej sekcji.

  1. Otwórz okno Menedżera Android SDK :

    android
    

    Uwaga: Jeśli to polecenie nie spowoduje otwarcia pliku Menedżera Android SDK , Twoja ścieżka nie jest poprawnie skonfigurowana.

  2. Wybierz Narzędzia wyboru .

  3. Zaznacz pole wyboru najnowszego zestawu SDK systemu Android .

  4. W folderze Extras zaznacz pole wyboru dla biblioteki Android Support Library .

  5. Kliknij Zainstaluj pakiety ... , aby zakończyć pobieranie i instalację.

    Uwaga: możesz chcieć zainstalować wszystkie dostępne aktualizacje, ale pamiętaj, że potrwa to dłużej, ponieważ każdy poziom interfejsu API to duże pobieranie.

Brad W.
źródło
1
w nr 3 (konfiguracja zmiennej ANRDOID_HOME): W którym pliku to powinno być?
suMi
@suMi uruchamiasz polecenie eksportu z terminala opartego na systemie operacyjnym i zmieniasz ŚCIEŻKĘ, którą ustawiłeś jako ANDROID_HOMErówną, w zależności od miejsca zapisania SDK. Więcej szczegółów znajdziesz na stackoverflow.com/questions/19986214/… .
Brad W.
@suMI Jeśli chcesz, aby zmiany były trwałe, dodaj te linie do swojego .bashrc, jeśli używasz Linuksa lub Maca.
brt
jeśli ktoś napotka ten problem podczas budowania z teamcity, musisz utworzyć parametry środowiska w teamcity dla ANDROID_HOME.
lawphotog
Co to jest /android-sdk-linux, toolsi platform-tools? Nie widzę takich katalogów w moim /opt/android-studio. Moje Android Studio działa, ale nie mam tych katalogów.
Dzintars
40

W systemie Linux

Przede wszystkim ustaw ANDROID_HOME w pliku .bashrc

Uruchom polecenie

sudo gedit ~/.bashrc

ustaw ścieżkę Andoid sdk, w której zainstalowałeś

export ANDROID_HOME=/opt/android-sdk-linux 
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

aby ponownie załadować polecenie uruchomienia pliku

source ~/.bashrc

Teraz sprawdź zainstalowaną platformę, uruchom polecenie

ionic platform

Wynik

Installed platforms:
  android 6.0.0
Available platforms: 
  amazon-fireos ~3.6.3 (deprecated)
  blackberry10 ~3.8.0
  browser ~4.1.0
  firefoxos ~3.6.3
  ubuntu ~4.3.4
  webos ~3.7.0

jeśli Android jest już zainstalowany, należy go usunąć i zainstalować ponownie

ionic platform rm android
ionic platform add android

Jeśli jeszcze nie jest zainstalowany, dodaj platformę Android

ionic platform add android

Upewnij się, że dodałeś platformę Android bez polecenia sudo

Jeśli nadal pojawia się błąd podczas dodawania platformy Androida, takiej jak obserwowanie

Błąd: EACCES: odmowa uprawnień, otwórz „/home/ubuntu/.cordova/lib/npm_cache/cordova-android/6.0.0/package/package.json”

Przejdź do / home / ubuntu / i usuń stamtąd folder .cordova

cd /home/ubuntu/
sudo rm -r .cordova

Teraz ponownie uruchom następujące polecenie

ionic platform add android

po pomyślnym dodaniu platformy będziesz mógł budować andoid w języku jonowym.

Dzięki

Dineshaws
źródło
14
od wersji 3.0.0 to jest ionic cordova platform add android.
Baumi
29

Oto kroki, które musisz wykonać, aby pomyślnie skonfigurować swój projekt Ionic do pracy z emulatorem Androida:

  1. Stwórz projekt Ionic: Ionic Start app Zakładki Nazwa (dla motywu zakładki)
  2. cd nazwa aplikacji
  3. konfiguracja jonowa sass
  4. Aby uruchomić aplikację w sieci: ionic serv

Aby dodać platformę Android:

Priori Things

Najpierw musisz skonfigurować zmienne środowiskowe. W tym celu należy wziąć pod uwagę 3 pliki:

1. ~ / .profile (do ustawiania zmiennych przy każdym otwarciu terminala lub uruchomieniu komputera):

// Kod, który musisz dołączyć na końcu

set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export ANDROID_HOME='/home/<user_name>/Android/Sdk' <Path to android SDK>
export PATH=$PATH:$ANDROID_HOME/bin
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

2. / etc / environment (aby ustawić zmienne środowiskowe):

// Cała zawartość pliku

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
ANDROID_HOME="/home/<user_name>/Android/Sdk" <Path to android SDK>

3. / etc / profile :

// Kod, który musisz dodać na końcu

JAVA_HOME=/usr/lib/jvm/java-8-oracle <Path where Java is installed>
JRE_HOME=$JAVA_HOME/jre 
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

Aby załadować powyższe zmiany dokonane w pliku, należy uruchomić następujące polecenie:

source ~/.profile
source /etc/environment
source /etc/profile

Posteori Things

1. Dodaj platformę: platforma ionic dodaj android (pamiętaj, że musisz uruchomić to polecenie bez sudo )

2. Jeśli nadal pojawia się błąd w powyższym poleceniu, wykonaj następujące czynności: (tutaj nazwa_aplikacji = helloWorld)

    cd ..
    sudo chmod -R 777 helloWorld
    cd helloWorld 
    ionic platform add android
    If you are still getting the error then remove ".cordova" folder from the home directory of your PC.

3. Aby uruchomić aplikację w emulatorze Androida: ionic run android

Dzięki!

Nikhil Arora
źródło
Dzięki Nikhil, dla mnie też zadziałało. Po wypróbowaniu wielu rzeczy - zadziałało z tymi powyższymi krokami, które podałeś :-)
Rajeev Jayaswal,
Skończyło się na tym, że po dodaniu zmiennych Java i Android do środowiska / etc / environment pojawił się problem z „pętlą logowania”. Na szczęście udało mi się to usunąć z logowania terminala (ctrl + alt + F3) i logowanie jest teraz normalne.
Harry
8

Dla tych, którzy mają przenośną edycję SDK w systemie Windows, po prostu dodaj 2 następujące ścieżki do swojego systemu.

F:\ADT_SDK\sdk\platforms
F:\ADT_SDK\sdk\platform-tools

To zadziałało dla mnie.

BoCyrill
źródło
Zastanawiam się, dlaczego moja odpowiedź została odrzucona. Czy można mieć powód tego działania?
BoCyrill,
2
ponieważ nie mówisz, jak je dodać?
Florian Lauterbach
1
Dokładnie, nie określiłeś, jak to zrobić.
Anuj,
8

Miałem ten problem wcześniej.
Musisz dodać sdks\toolsi sdks\build-toolsdo swojej ścieżki środowiska.

Jalaleddin Hosseini
źródło
6

11 kwietnia 2019 r

Żadna z powyższych odpowiedzi nie rozwiązała mojego problemu, więc chciałem dołączyć aktualne rozwiązanie (stan na kwiecień 2019) dla osób korzystających z Ubuntu 18.04. Tak rozwiązałem powyższe pytanie ...

  1. Zainstalowałem Android SDK ze strony internetowej i umieściłem go w tym folderze:/usr/lib/Android/
  2. Wyszukaj miejsce zainstalowania zestawu SDK i wersję. W moim przypadku to tutaj:

    /usr/lib/Android/Sdk/build-tools/28.0.3

    Uwaga: że używam wersji 28.0.3, Twoja wersja może się różnić.

  3. Dodaj ANDROID_HOMEdo ścieżki środowiska. Aby to zrobić, otwórz / etc / environment za pomocą edytora tekstu:

    sudo nano /etc/environment

    Dodaj wiersz dotyczący ANDROID_HOMEkonkretnej wersji i ścieżki. W moim przypadku było to:

    ANDROID_HOME="/usr/lib/Android/Sdk/build-tools/28.0.3"

  4. Na koniec pobierz zaktualizowane środowisko za pomocą: source /etc/environment

    Potwierdź to, próbując: echo $ANDROID_HOMEw terminalu. Powinieneś otrzymać ścieżkę do nowo utworzonej zmiennej.

    Jedna dodatkowa uwaga na temat pozyskiwania: musiałem ponownie uruchomić komputer, aby terminal VScode rozpoznał moje zmiany. Po restarcie środowisko zostało ustawione i od tego czasu nie miałem żadnych problemów.

bsheps
źródło
słowo kluczowe: restart
Cedric Ipkiss
5

Wykonaj: sudo gedit ~/.bashrc dodaj

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH
export ANDROID_HOME=~/Android/Sdk 
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

i

source ~/.bashrc
Diego Salguero
źródło
2

Chciałbym podzielić się odpowiedzią, która pokazuje również podejście z wykorzystaniem Android SDK dostarczonego przez repozytorium Ubuntu:

Zainstaluj Android SDK

sudo apt-get install android-sdk

Eksportuj zmienne środowiskowe

export ANDROID_HOME="/usr/lib/android-sdk/"
export PATH="${PATH}:${ANDROID_HOME}tools/:${ANDROID_HOME}platform-tools/"
Muhammad Numan
źródło
1

Przyjechałem tutaj z Google, szukając tego samego problemu i zmarnowałem 4 godziny, aby dowiedzieć się, co może być nie tak. A teraz czuję się naprawdę głupio, publikując tę ​​odpowiedź. W moim przypadku SDK, JDK, JRE, Ant i wszystko inne zostało zainstalowane i działało dzień wcześniej.

Ale tylko jeden konkretny projekt dawał mi ten problem. Ten był pod "C: \ Users \ Name \ Documents" lokalizacja

Wkrótce zdałem sobie sprawę, że uruchamiam cmd jako zwykły użytkownik, gdy tylko wybrałem opcję „ Uruchom jako administrator ”, wszystko zaczęło działać.

Wskazówka: zawsze dokładnie rozważ lokalizację projektu!

Uderzyć w
źródło
1

To rozwiązało mój problem. Dodaj poniżej do ścieżki systemowej

PATH_TO_android \ platform

PATH_TO_android \ platform-tools

PKInd007
źródło
1

Aby ustawić środowisko ANDROID_HOME na Ubuntu 20.04, odwiedź sklep Snap Store Ubuntu i zainstaluj Android Studio, a następnie otwórz

vim $HOME/.bashrc

I ustaw zmienne środowiskowe w następujący sposób:

export ANDROID_HOME=${HOME}/Android/Sdk
export PATH=${ANDROID_HOME}/tools:${PATH}
export PATH=${ANDROID_HOME}/emulator:${PATH}
export PATH=${ANDROID_HOME}/platform-tools:${PATH}

Z wcześniejszych wersjach Androida studio zastąpić ANDROID_HOME z ANDROID_SDK_ROOT inaczej buduje będą narzekać, że ANDROID_HOME jest przestarzała.

Hamfri
źródło
0

Doświadczyłem tego problemu na komputerze z systemem Windows 7: wyłączenie komputera podczas działania usługi jonowej (zakładam, że to był problem, który wszystko zepsuł)

Usuń węzeł CAŁKOWICIE i ponownie zainstaluj wszystko na nowej kopii węzła

DudeOfLayers
źródło
0

W systemie Windows, jeśli uruchamiasz to polecenie z terminala kodu VS i nawet po skonfigurowaniu wszystkich zmiennych środowiskowych (tj. Build-tools, platform-tools, tools), nie działa, próbując uruchomić to samo polecenie z zewnętrznego terminala cmd. W moim przypadku nawet po uruchomieniu nowego terminala kodu VS nie był w stanie przyjąć zaktualizowanej ścieżki środowiska.

Zadziałało, gdy uruchomiłem to samo polecenie z cmd systemu Windows.

himanshu goyal
źródło
0

Doświadczyłem tego samego problemu na MAC Catalina 10.15 to, co dodajesz w .bash_profile nie jest rozpoznawane po wyświetleniu go na terminalu, jest tymczasowo przechowywane. Zalecane jest użycie .zprofile na stałe i dodanie do niego wszystkich zmiennych środowiskowych. Po 5 godzinach prób znalazłem takie rozwiązanie. Mam nadzieję, że komuś się przyda.

 vi .zprofile
 insert(press i)

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

after adding environment variables press esc
then enter :wq!
try echo $ANDROID_HOME in new tab(it will not be empty) path will be 
printed
MKR
źródło