ionic build Android | błąd: nie znaleziono zainstalowanych narzędzi do kompilacji. Zainstaluj narzędzia do kompilacji Androida

95

Kiedy uruchamiam polecenie ionic build android w katalogu głównym projektu ionic, pojawia się ten błąd:

BŁĄD: kompilacja nie powiodła się z wyjątkiem.

  • Gdzie: wiersz Script '/home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle': 64

  • Co poszło nie tak: wystąpił problem z oceną głównego projektu „android”.

    Nie znaleziono zainstalowanych narzędzi do kompilacji. Zainstaluj narzędzia do budowania systemu Android w wersji 19.1.0 lub nowszej.

  • Spróbuj: Uruchom z opcją --stacktrace, aby uzyskać ślad stosu. Uruchom z opcją --info lub --debug, aby uzyskać więcej danych wyjściowych dziennika.

javad@javad:~/Desktop/javadApp$ ionic build android
Running command: /home/javad/Desktop/javadApp/hooks/after_prepare/010_add_platform_class.js /home/javad/Desktop/javadApp
add to body class: platform-android
Running command: /home/javad/Desktop/javadApp/platforms/android/cordova/build 
ANDROID_HOME=/opt/android-sdk
JAVA_HOME=/usr/lib/jvm/default-java
Running: /home/javad/Desktop/javadApp/platforms/android/gradlew cdvBuildDebug -b /home/javad/Desktop/javadApp/platforms/android/build.gradle -Dorg.gradle.daemon=true

FAILURE: Build failed with an exception.

* Where:
Script '/home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle' line: 64

* What went wrong:
A problem occurred evaluating root project 'android'.
> No installed build tools found. Please install the Android build tools version 19.1.0 or higher.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.564 secs

/home/javad/Desktop/javadApp/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: /home/javad/Desktop/javadApp/platforms/android/gradlew with args: cdvBuildDebug,-b,/home/javad/Desktop/javadApp/platforms/android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /home/javad/Desktop/javadApp/platforms/android/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Error: /home/javad/Desktop/javadApp/platforms/android/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:134:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Process.ChildProcess._handle.onexit (child_process.js:810:5)

w ~ / .profile mam:

export PATH = $ PATH: / opt / android-sdk / tools

export PATH = $ PATH: / opt / android-sdk / platform-tools

export PATH = $ PATH: / opt / node / bin

eksportuj JAVA_HOME = / usr / lib / jvm / default-java

eksportuj ANDROID_HOME = / opt / android-sdk

$ PATH to:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / opt / android-sdk / tools : / opt / android-sdk / platform-tools: / opt / node / bin

Ważna kwestia:

w pliku: /home/javad/Desktop/javadApp/platforms/android/CordovaLib/cordova.gradle | wiersz 38 :

String[] getAvailableBuildTools() {
    def buildToolsDir = new File(getAndroidSdkDir(), "build-tools")
    buildToolsDir.list()
        .findAll { it ==~ /[0-9.]+/ }
        .sort { a, b -> compareVersions(b, a) }
}

właśnie zwróciłem / opt / android-sdk / build-tools !!!

w folderze / opt / android-sdk / build-tools mam:

Folder android-5.1 wyodrębniany z: https://dl.google.com/android/repository/build-tools_r22-linux.zip

javad75
źródło
To dla mnie działa, sprawdź stackoverflow.com/questions/38660955/ ...
vinod

Odpowiedzi:

54

Naprawiam to, pobierając pakiet sdk o nazwie platform-tools i buid-tools przy użyciu sdkmanager. Możesz użyć sdkmanager.exe lub, jeśli używasz SDK CLI , przejdź do ~\AppData\Local\Android\sdk\tools\bini uruchom to polecenie:

sdkmanager "platform-tools" "platforms;android-26"

lub

sdkmanager "build-tools;27.0.3"

lub obydwa

Po tym powinieneś być w stanie uruchomić ionic cordova run androidlub ionic build android.

Uwaga: sdkmanagerpolecenie globalizuj , dodając ~\AppData\Local\Android\sdk\toolsi ~\AppData\Local\Android\sdk\tools\bindo zmiennej środowiskowej.

Fadhil
źródło
2
Nie zapomnij uruchomić cmd jako Administrator, aby uniknąć błędów.
Napotkałem
Dziękuję, to był dla mnie ważny krok w procesie tworzenia.
BarryMode
otwarty Terminal w folderze bin: mówi sdkmanager: command not found
MJ Montes
@LasLemieux, sprawdź, czy poprawnie zainstalowałeś SDK CLI. Jeśli używasz systemu Windows, powinien istnieć plik o nazwie sdkmanage.exe.
Fadhil
43

Dla mnie uruchomienie tych trzech poleceń rozwiązuje problem na moim Macu:

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

Dla ułatwienia kopiowania tutaj jest jedna linijka

export ANDROID_HOME=~/Library/Android/sdk && export PATH=${PATH}:${ANDROID_HOME}/tools && export PATH=${PATH}:${ANDROID_HOME}/platform-tools

Aby dodać na stałe

Wykonaj następujące kroki:

  1. Otwórz plik .bash_profile w swoim katalogu domowym (na przykład /Users/your-user-name/.bash_profile) w edytorze tekstu.
  2. Dodaj export PATH="The above exports here"do ostatniej linii pliku, gdzie twój-katalog to katalog, który chcesz dodać.
  3. Zapisz plik .bash_profile.
  4. Uruchom ponownie terminal

Dodawanie do procesu bash dla różnych systemów

Czarna Mamba
źródło
3
To pomaga mi za każdym razem, ale jak tylko zamknę terminal lub ponownie uruchomię Maca, muszę to zrobić ponownie
Forza
To zadziałało dla mnie. @Forza, jeśli dodasz go do swojego ~ / .bash_profile, będzie działać za każdym razem.
caden311
Pomyłkowo dodałem te podkatalogi PATH do mojej zmiennej ANDROID_HOME. Kiedy to posprzątałem, zadziałało!
umbyersw
Jak sprawić, by nie trzeba było ponownie uruchamiać polecenia za każdym razem, gdy ponownie uruchamiasz terminal?
Ross Rawlins
Próbowałem, ale to się trzyma, muszę to robić za każdym razem, gdy otwieram terminal.
Ross Rawlins
30

Brakuje narzędzi Android SDK. Spróbuj wykonać następujące czynności:

android list sdk --all
android update sdk -u -a -t <package no.>

Gdzie <package no.>jest 1,2,3,ni

-u (--no-ui)  # Headless mode
-a (--all)    # Includes all packages (also obsolete ones)
-t (--filter) # Filter by package index
Aley
źródło
6
Rzuca mnieFilter 19 not supported
Atul Agrawal
2
Aktualizacja 2018: użyj -t android-27dla wersji 27 itd.
andersand
21

ponieważ komunikat o błędzie mówi „Nie znaleziono zainstalowanych narzędzi do kompilacji” , oznacza to

1: Naprawdę, naprawdę nie znaleziono narzędzi do budowania

2: Aby zmusić go do znalezienia narzędzi do budowania, musisz poprawnie zdefiniować te ścieżki

ŚCIEŻKA JEST TAKA SAMA DLA UBUNTU (.bashrc) I MAC (.bash_profile)

export ANDROID_HOME=/Users/vijay/Software/android-sdk-macosx
export PATH=${PATH}:/Users/vijay/Software/android-sdk-macosx/tools
export PATH=${PATH}:/Users/vijay/Software/android-sdk-macosx/platform-tools

3: WAŻNE WAŻNE Gdy tylko ustawisz zmienne środowiskowe, musisz ponownie załadować zmienne środowiskowe.

//For ubuntu
$source .bashrc 

//For macos
$source .bash_profile

4: Następnie sprawdź w terminalu

$printenv ANDROID_HOME
$printenv PATH

Uwaga: jeśli nie znalazłeś zmian w printenv, zrestartuj komputer i spróbuj ponownie printenv PATH, printenv ANDROID_HOME. Istnieje również polecenie ponownego załadowania zmiennych środowiskowych.

4: następnie otwórz terminal i napisz PÓŁ TEKSTU '$ i' i naciśnij tabulator. Po kliknięciu zakładki powinieneś zobaczyć pełną nazwę '$ android'. To sprawdza, czy wszystkie ścieżki są poprawne

5: napisz $ androida w terminalu i naciśnij enter

vijay
źródło
18

Zainstaluj narzędzia do budowania systemu Android w wersji 19.1.0 lub nowszej.

Następujące polecenia mogą szybko zaktualizować Android SDK w systemie Ubuntu i naprawić powyższy błąd:

android list sdk --all
android update sdk -u -a -t 19
android update sdk -u -a -t 20
Agilox
źródło
6
Filtr 19 i filtr 20 nie są obsługiwane
Skizo-ozᴉʞS
1
to samo tutaj @ Skizo-ozᴉʞS
Bhimashankar Mantur
17

Naprawię błąd, zmieniając ANDROID_HOME na C: \ Users \ Gebru \ AppData \ Local \ Android \ Sdk z niewłaściwego poprzedniego katalogu.

Gebru Welay
źródło
To zadziałało dla mnie. Nie miałem ANDROID_HOMEustawione i Cordova Zakłada to było na /usr/lib/android-sdkco było błędne
hughjdavey
Mam to samo, tyle że zatrzymałem się przed / Sdk. Wydaje się, że coś jest nie tak z tą linią, która ją łamie
Niski
6

Wiem, że to nie wygląda na powiązane, zwłaszcza biorąc pod uwagę komunikat o błędzie, ale naprawiłem to, instalując nowszą wersję narzędzi do tworzenia zestawu SDK systemu Android.

RB_
źródło
6

W moim przypadku zmienna środowiska ANDROID_HOME została wskazana w niewłaściwym (starym) katalogu. Przeniosłem się, aby poprawić jeden. W moim przypadku

ANDROID_HOME = F: \ Program Files (x86) \ Android \ android-sdk

robie2011
źródło
1
Dzięki tak, wskazałem na android studio, które zostało zasugerowane gdzie indziej.
jcubic
5

Dla mnie problem polegał na tym, że ANDROID_HOME wskazywał na starą ścieżkę Android SDK. Po zainstalowaniu Android Studio musiałem odpowiednio zaktualizować ~ / .bash_profile dla MAC (El Capitan)

export ANDROID_HOME = "/ Users / corneliusparkin / Library / Android / sdk"

Pamiętaj, aby ponownie uruchomić terminal lub uruchomić to polecenie po zaktualizowaniu ~ / .bash_profile

źródło ~ / .bash_profile

Cornelius Parkin
źródło
5

DLA WINDOW: miałem do czynienia z tego typu problemem. Ale po zbadaniu rozwiązało to w moim przypadku. Używam okna 10. wystarczy wykonać kilka poniższych kroków:

  1. pobierz Android SKD Manager dla systemu Windows. https://developer.android.com/studio na końcu tej strony. Jest to plik zip. po wypakowaniu pokaże katalog narzędzi.

  2. Idź na dysk C: \ utwórz nowy folder „android-sdk”. skopiuj folder narzędzi i wklej w
    C: \ android-sdk

  3. otwórz wiersz polecenia jako Administrator. Przejdź do folderu „c: \ android-sdk \ tools \ bin”. sdkmanager zostanie pokazany tutaj. wpisz skdmanager, będzie wyglądać tak: [=======================================] 100 % Obliczanie aktualizacji ...

  4. po tym typie "sdkmanager platform-tools" utworzy katalog platform-tools w C: \ android-sdk

  5. Teraz ustaw zmienne środowiskowe systemu: kliknij prawym przyciskiem myszy wybierz właściwości komputera. pojawią się ustawienia systemu. kliknij> Zmienne środowiskowe. Pojawią się zmienne środowiskowe.

  6. W tym oknie Zmienne systemowe, takie jak to. C: \ android-sdk \ platform-tools oraz C: \ android-sdk \ tools \ bin

  7. uruchom polecenie, aby zbudować narzędzia sdkmanager "build-tools; 27.0.3"

    Upewnij się również, że zdefiniowano ścieżkę java. Mam nadzieję, że to rozwiąże problem.

MAzeem
źródło
W punkcie nr. 3 masz błąd w pisowni „skdmanager”. Powinno byćsdkmanager
Santosh
4

2018

The "android" command is deprecated.

próbować

sdkmanager "build-tools;27.0.3"

To działa dla mnie, jak powiedział #Fadhil

Sara Rodriguez Cubillas
źródło
3

Wpisz android w wierszu poleceń i zainstaluj „Android SDK Build-tools”

Karan Bhutwala
źródło
2
W moim przypadku miałeś rację. Zapomniałem zainstalować narzędzia Android SDK Build z Menedżera SDK. Dzięki!
tuchi35
2

Przeszukuję ten problem przez kilka dni ... Mam nadzieję, że okaże się przydatny

KOŃCOWE ROZWIĄZANIE: (Zakładam, że zainstalowałeś Oracle-JDK i ANDROID)

otwórz / etc / environment z

 sudo nano /etc/environment


PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/shoniisra/Android/Sdk/tools:/home/shoniisra/Android/Sdk/platform-tools:/home/shoniisra/Android/Sdk/build-tools:/home/shoniisra/Android/Sdk:/home/shoniisra/android-studio/bin"
JAVA_HOME="/home/shoniisra/java/jdk1.8.0_231"
ANDROID_HOME="/home/shoniisra/Android/Sdk/build-tools/29.0.2"
ANDROID_SDK_ROOT="/home/shoniisra/Android/Sdk"
ANT_HOME="/home/shoniisra/ant/apache-ant-1.9.14"

Zapisz i wyjdź (CTRL + o CTRL + X)

Wczytaj ponownie plik source /etc/environment

Jeśli niedawno zainstalowałeś Androida, powinieneś zaakceptować niektóre licencje

cd ~/Android/Sdk/tools/bin/

Uruchom sdkmanager:

./sdkmanager --licenses

Następnie zaakceptuj wszystko i na koniec wygeneruj pakiet APK

cd {yourproyect}
sudo ionic cordova build android
izrael Villacís
źródło
1

W moim przypadku problem polegał na tym, że ANDROID_HOME wskazywał z ~/Library/Android/jakiegoś powodu. Prawidłowa ścieżka to~/Library/Android/sdk

miqrc
źródło
0

To działa dla mnie! uważaj na nowe wersje java, ponieważ powodują błędy, sprawdź, czy masz wszystko zainstalowane i w swoim określonym katalogu,

Nie korzystałem z openJDK

export JAVA_HOME="/usr/lib/jvm/java-8-jdk" \
&& export PATH=$JAVA_HOME/bin:$PATH \
&& export ANDROID_HOME=$HOME/Android/Sdk \
&& export PATH=${PATH}:${ANDROID_HOME}/tools \
&& export PATH=${PATH}:${ANDROID_HOME}/platform-tools \
&& export GRADLE_HOME=/usr/share/java/gradle/bin/gradle \
export PATH=$PATH:$GRADLE_HOME/bin

Linux 4.14.39-1-MANJARO # 1 SMP PREEMPT Wed 2 maja 19:03:39 UTC 2018 x86_64 GNU / Linux

zobacz zrzut ekranu w mojej powłoce

Adrian Avila
źródło
0

Dodałem <preference name="android-minSdkVersion" value="19" /> do mojego conf.xmli kompilacja się powiodła.

Narek Tootikian
źródło
0

Rozwiązanie tego pytania znajduje się tutaj https://docops.ca.com/devtest-solutions/8-0-2/en/installing/setting-up-the-mobile-testing-environment/preinstallation-steps-for-mobile -testowanie /

Wykonaj poniższe czynności i rozwiąż problem.

Pakiet Android SDK zawiera składnik zwany narzędziami do kompilacji. Test mobilny wymaga co najmniej wersji 19.0.1, 19.1.0 lub 20.0.0.

Jeśli te wersje nie są zainstalowane wraz z pakietem ADT, może pojawić się komunikat o błędzie podczas tworzenia zasobu mobilnego na stacji roboczej DevTest:

Junior Placido
źródło
0

Mac IOS

Edytuj ~ / .bash_profile używając vi lub innego edytora powłoki

vi ~/.bash_profile

Dodaj następujące wiersze:

export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:~/Software/android-sdk-macosx/tools:~/Software/android-sdk-macosx/platform-tools"

(zapisz plik i wyjdź) załaduj te zaktualizowane zmienne env do bieżącej powłoki env:

. ~/.bash_profile
  • Jeśli z jakiegoś powodu masz starą wersję narzędzi do kompilacji, możesz je zaktualizować ze studia programistycznego Androida:
  • Skonfiguruj -> Menedżer SDK -> wybierz „Narzędzia do tworzenia zestawu SDK dla systemu Android
  • Zaznacz „Pokaż szczegóły pakietu”
  • przejrzyj wersje tego pakietu, zaktualizuj w razie potrzeby
Eyal c
źródło
0

Cóż, wiele osób udziela odpowiedzi, jedna odpowiedź jest taka sama, a inna inna. Próbuję wielu odpowiedzi, ale nie działają one dla mnie, oczywiście próbuję również z powyższej odpowiedzi, ale nie rozwiązały mojego problemu. I nie wiem dlaczego, ale mam ten sam błąd, nawet mój problem rozwiązany przez tę ODPOWIEDŹ . Chcę tylko napisać, że to może być pomocne dla kogoś.

user9088454
źródło
0

Rozwiązałem ten problem, wykonując następujące czynności:

  1. Przejdź do pliku cordova.gradle (platforma / android / cordovaLib / cordova.gradle)
  2. Wyszukaj metodę getAndroidSdkDir ()
  3. Teraz po prostu zastąp System.getenv („ANDROID_HOME”) swoją prawdziwą ścieżką Android SDK
Rakshita
źródło
0

Otwórz Wiersz polecenia Sprawdź ścieżkę ANDROID_HOME za pomocą SET ANDROID_HOME, jeśli nie jest ustawiony, ustaw za pomocą poniższego polecenia.

 SET ANDROID_HOME="C:\Users\VenkateshMogili\AppData\Local\Android\Sdk"

LUB otwórz zmienne środowiskowe systemu i utwórz nową zmienną jako

 Variable Name: ANDROID_HOME
 Variable Value: C:\Users\VenkateshMogili\AppData\Local\Android\Sdk

i otwórz plik cordova.gradle ( /platforms/android/CordovaLib/cordova.gradle ) i wyszukaj metodę getAndroidSdkDir () i zamień ścieżkę ANDROID_HOME ( „C: / Users / VenkateshMogili / AppData / Local / Android / Sdk” ) zamiast System.getenv („ANDROID_HOME”)

Jeśli pojawi się problem z licencją, wpisz poniższe polecenie, otwierając wiersz polecenia w C: \ Users \ VenkateshMogili \ AppData \ Local \ Android \ Sdk \ tools \ bin

  sdkmanager "build-tools;27.0.3"  //<-that will create build-tools folder and licenses folder.

Mi to pasuje.

VenkateshMogili
źródło
Czy piąty wiersz opublikowanego dziennika OP nie pokazuje już, że ANDROID_HOMEjest ustawiony (na /opt/android-sdk)?
LWChris
Po sprawdzeniu w katalogu domowym może on znajdować się głównie w Home / home / username / Android / sdk. Spróbuj to ustawić, jeśli zostanie znaleziony. wklej poniższą linię na końcu pliku .bashrc (w katalogu domowym) eksportuj ANDROID_HOME = $ HOME / Android / Sdk
VenkateshMogili
0

Ostrzeżenie dla programistów korzystających z maszyn wirtualnych

Spędziłem bardzo dużo czasu próbując rozwiązać ten problem. Wypróbowałem wszystko w tym poście i wiele innych rozwiązań w sieci. Jednak po wielu niepowodzeniach i przejrzeniu tego, co wszyscy w sieci mówili, nadal nie mogłem rozwiązać problemu na mojej maszynie wirtualnej - czyli obrazie systemu Windows 10 na VMWare Workstation.

Po przejrzeniu wszystkich rozwiązań i opisów maszyn / systemów operacyjnych, które ludzie opracowywali, dostrzegając rażącą różnicę w mojej konfiguracji, gdy tworzyłem maszynę wirtualną.

Rozwiązanie: ściągnąłem cały mój kod na maszynę hosta (system operacyjny Windows 10), ponownie zainstalowałem wszystkie zależności i upewniłem się, że wszystko się ułożyło. Po wielu badaniach znalazłem ostrzeżenia, że ​​Android Studio ma znane problemy związane z poprawną instalacją na niektórych maszynach wirtualnych. Więc jeśli byłeś podobny do mnie i wypróbowałeś wszystkie rozwiązania (wiele razy) i nic nie działało, ale jesteś na maszynie wirtualnej, być może będziesz musiał rozważyć zbudowanie na swoim hoście (lub innej fizycznej maszynie)

legenda Marshalla
źródło
0

Ten problem rozwiązałem z następującymi szczegółami, jakoś Android SDK zarządza zainstalowaniem wszystkich zależności i niezbędnych plików, ale zapomnij o tych `templates`plikach, w których znajduje się szablony> gradle> opakowanie. Brakuje tego zestawu plików.

Zrzut ekranu

Ścieżka w mac /Users/giogio/Library/Android/sdk/tools/templates

GiovannI Camana
źródło
0

Ten problem występuje również w przypadku uaktualnienia instalacji Cordova.

Sprawdź, czy błąd dziennika ma coś takiego:

Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting) <-------------
ANDROID_HOME=/{path}/android-sdk-linux (DEPRECATED)
Using Android SDK: /usr/lib/android-sdk
Starting a Gradle Daemon (subsequent builds will be faster)

W takim przypadku po prostu zmień ANDROID_HOMEna ANDROID_SDK_ROOTw swoim ~/.bashrc lub podobnym pliku konfiguracyjnym.

Gdzie wcześniej było:

export ANDROID_HOME="/{path}/android-sdk-linux"

Teraz jest:

export ANDROID_SDK_ROOT="/{path}/android-sdk-linux"

Nie zapomnij o źródle: $ . ~/.bashrcpo edycji.

Igor Parra
źródło
-1

Przejdź do D: Android sdk \ Android SDK i kliknij Menedżer SDK i sprawdź, czy są zainstalowane narzędzia kompilacji, jeśli nie są zainstalowane, a następnie zainstaluj te narzędzia

Roshani
źródło
-1
This is very irritating error and i wasted my almost 9 hours to solve this.

Steps to solve:

Notice **ANDROID_HOME** while you run **ionic cordova build android** . command i. for example in my case it was pointing to some other android sdk which i uninstalled and then it started pointing to right sdk.
**In my case i uninstalled :**

brew cask uninstall android-sdk
brew cask uninstall android-platform-tool


then i ran **ionic cordova build android**

> cordova build android
ANDROID_HOME=/Users/anand/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home


Then it might say lineces not accepted then run below command :

cd /Users/Android/sdk/tools/bin/
then run ./sdkmanager --licenses
accepts all with y option


Then it might say unable to download jars then go to platform android and build.gradle

and search for buildscript and inside that reverse the order 


repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }

Thats it . Enjoy huh
Anand_5050
źródło