Błąd: nie można znaleźć opakowania stopni w pakiecie Android SDK. Być może trzeba zaktualizować zestaw Android SDK - Android

199

Wiem, że jest wiele pytań podobnych do tego, ale w żadnym z nich nie znalazłem rozwiązania mojego problemu. Poza tym przedstawię szczegóły dotyczące mojej konkretnej sprawy.

Kodowałem projekt Ionic w Ubuntu 16.04 LTS, a teraz muszę go zbudować do wydania. Więc uruchamiam polecenie:

cordova build --release android

I pojawia się następujący błąd:

Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /home/user/Android/Sdk/tools/templates/gradle/wrapper
  • Nie mam tego templates/gradle/wrapperkatalogu.
  • Moje Android Studio to 2.3, najnowsza wersja na razie
  • Android SDK Platform-Tools 25.0.3
  • Narzędzia Android SDK 25.3.1
  • Wszystkie wersje Androida od 2.1 (Eclair) do 7.1.1 (Nougat)

Po szeroko zakrojonych badaniach umieściłem w pliku wszystkie zmienne środowiskowe związane z Android Studio /etc/environment. Teraz wygląda to tak:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/game:/home/<user>/Android/Sdk:/home/<user>/Android/Sdk/tools:/home/<user>/Android/Sdk/platform-tools"

ANDROID_HOME=/home/<user>/Android/Sdk
export ANDROID_HOME

JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_HOME

GRADLE_HOME=/opt/android-studio/gradle/gradle-3.2
export GRADLE_HOME

Teraz, w celu przetestowania zmiennych środowiskowych, uruchamiam następujące polecenia:

source /etc/environment
echo $PATH
echo $ANDROID_HOME
echo $JAVA_HOME
echo $GRADLE_HOME

Wszystkie zmienne ścieżki są poprawnie wyświetlane.

Wygląda więc na to, że zmienne środowiskowe powinny wyglądać tak, jak powinny, zgodnie z różnymi podobnymi pytaniami i samouczkami, które przeszukałem. Czy ktoś wie, co robię źle? Dlaczego nadal pojawia się błąd Gradle Wrapper?

rbenvenuto
źródło

Odpowiedzi:

246

Właśnie spotkałem ten sam problem.

Może to być okluzja w instrukcjach dotyczących instalacji (lub aktualizacji) Androida Studio ze wszystkimi Narzędziami SDK, których brakowało zarówno Ty, jak i ja, lub być może błąd utworzony przez nową wersję Studio, która nie przestrzega tych samych konwencji plików, co starsza wersja. Opieram się na tym drugim, ponieważ wiele postów SO na ten temat wydaje się wskazywać na ANDROID_PATH z folderem o nazwie android-sdk, który nie pojawia się w najnowszej wersji (2.3.0.8).

Wydaje się jednak , że istnieje obejście , które właśnie zacząłem pracować na moim komputerze. Oto co zrobiłem:

  • Pobierz tools_r25.2.3-windows.zip z Android Downloads .
  • Rozpakowany zip na pulpicie
  • Zastąpiono C: \ Users \ nazwa użytkownika \ AppData \ Local \ Android \ sdk \ tools wyodrębnionymi narzędziami podfolderów /
  • W folderze projektu:

    Platformy $ cordova usuwają Androida
    Platformy $ cordova dodają Androida

Konieczne może być również wymuszenie usunięcia node_modules w Androidzie. Mam nadzieję, że to pomaga.

RJ
źródło
1
Dzięki, wpadłem w pułapkę tego samego zjawiska, teraz odzyskałem środowisko dzięki twojemu lekarstwu. Myślę, że to wina Google, więc programiści Cordova powinni poczekać na następną, poprawioną aktualizację.
HirofumiTamori
1
Miał dokładnie ten sam problem. Obniżono wersję „Android SDK Tools” 25.2.3, która rozwiązała problem. Prawdopodobnie powinniśmy poczekać na aktualizację od zespołu Google / Android.
gregor,
3
Zastąpienie tylko folderu narzędzi pomogło mi. Nie musiałem usuwać i dodawać platformy.
vahissan
16
Bardzo przydatne, w przypadku komputerów Mac możesz zrobić to samo, z wyjątkiem narzędzi do pobierania dla systemu Windows, pobierasz
O. Edholm
14
Oryginalny plik można uzyskać bezpośrednio tutaj: dl.google.com/android/repository/…
Adwokat diabła
254

Edycja 3:

Cordova Android 6.2.2 został wydany i jest w pełni kompatybilny z narzędziami SDK 26.0.xi 25.3.1. Użyj tej wersji:

cordova platform update [email protected]

lub

cordova platform rm android
cordova platform add [email protected]

Edycja 2:

Pojawiła się kolejna wersja narzędzi Android SDK (26.0.x), która nie jest w pełni kompatybilna z cordova-android 6.2.1.

Edycja: Cordova Android 6.2.1 został wydany i jest teraz zgodny z najnowszym zestawem Android SDK.

Możesz zaktualizować swoją obecną niekompatybilną platformę Android cordova platform update [email protected]

Możesz też usunąć istniejącą platformę i dodać nową (usunie wszelkie ręczne zmiany wprowadzone w yourProject/platforms/android/folderze)

cordova platform rm android cordova platform add [email protected]

Musisz określić wersję, ponieważ bieżący interfejs CLI domyślnie instaluje wersję 6.1.x.

Stara odpowiedź:

Niestety narzędzia Android SDK 25.3.1 złamały Cordova-Android 6.1.x

Dla tych, którzy nie chcą obniżyć wersji narzędzi SDK, możesz zainstalować cordova-android z github url, ponieważ większość problemów jest już naprawiona w gałęzi master.

cordova platform add https://github.com/apache/cordova-android

jcesarmobile
źródło
7
Wydanie jest teraz dostępne w repozytoriach npm, chociaż wydaje się, że nie jest jeszcze używane automatycznie. cordova platform add [email protected]działa jednak.
Jules
3
@chrjs cordova platform add [email protected]jest bezpieczny w użyciu, nie musisz dodawać wersji github i może być niestabilny, lepiej korzystać z 6.2.3, podobnie jak najnowsza wersja
jcesarmobile
1
Korzystam z Cordova 7.0.1 i pojawia się błąd: Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.jakaś rada?
Ethan Keller
1
@EthanKeller, ale czy wcześniej dodałeś platformę Android? W takim przypadku usuń go, cordova platform rm androiddodaj go ponowniecordova platform add android
jcesarmobile
1
Dlaczego nie tylko android@latest?
Seanny123
56

(Zasadniczo to, co powiedział @ user3464070)

Dla Maca:

cd ~/Library/Android/sdk
# download latest tools
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
# overwrite existing tools folder without prompting
unzip -o tools_r25.2.3-macosx.zip
# clean up
rm tools_r25.2.3-macosx.zip
kod podstawowy
źródło
1
Pierwsza linia może być cd $ANDROID_HOMEdla uproszczenia?
toxaq
1
@toxaq może być, ale $ANDROID_HOMEnie jest zdefiniowane na moim komputerze.
kod podstawowy
2
wielkie dzięki. Twoje polecenia + przy użyciu [email protected] działają jak urok na Macu!
David Dal Busco
43
  1. Jeśli masz system Android Studio zainstalowany w systemie, skopiuj folder szablonów C:\Program Files\Android\Android Studio\plugins\android\lib\templates
  2. Wklej go do folderu C:\Users\<user-name>\AppData\Local\Android\sdk\tools
  3. Uruchom polecenie: ionic build android

Wszystkie niezbędne pliki jar zostaną pobrane i zostanie wygenerowany plik apk dla aplikacji.

Uwaga: Ustaw zmienne środowiskowe na C:\Users\<user-name>\AppData\Local\Android\sdk\tools. Ustaw także nazwę użytkownika na swoją bieżącą nazwę użytkownika.

vinayb21
źródło
1
Proste i łatwe rozwiązanie!
Jari Pekkala
1
Jest to łatwe i ekonomiczne rozwiązanie dla tych, którzy mają Android Studio.
Johnson
1
to faktycznie działało dla mnie ... kiedy inne rozwiązania nie. Szkoda, że ​​wydaje się, że zależy to głównie od wersji studyjnej
Cordova
1
Począwszy od 2018 roku i współpracując z 2 różnymi wersjami Cordova, mogę ręczyć za to rozwiązanie, które działa i nie wymaga dodatkowych pobrań.
ravemir
26

W przypadku Linuksa istnieje jeszcze trochę lepsze rozwiązanie.

Przejdź do https://developer.android.com/studio/index.html#downloads

i pobierz plik zip narzędzi wiersza poleceń (dół strony) dla systemu Linux. Wyodrębnij je do folderu .... / Android / Sdk /, aby zastąpić / rozszerzyć folder narzędzi. Teraz wszystko działa dobrze.

użytkownik3464070
źródło
Tak, RJ odpowiedział na obejście problemu dla systemu Windows, a twoją odpowiedzią jest rozwiązanie dla systemu Linux. Przydatne dla kogoś, kto nie wie, jak rozwiązać system Windows C:\Users\username\AppData\Local\Android\sdk\toolsna Ubuntu/home/user/Android/Sdk
rbenvenuto
@rbenvenuto Odpowiedzi są w zasadzie takie same. Pobierz narzędzia, rozpakuj folder zip i zapisz wyodrębnioną zawartość w folderze narzędzi idk. Jak trudne może być zrozumienie? Używam komputera Mac i będę zapisywać w ~ / Library / Android / sdk / tools Czy muszę ukraść czyjeś głosy za wyjaśnienie tego samego innymi słowami?
iOSAndroidWindowsMobileAppsDev
4
@Ale Yep, nie mogę zaprzeczyć, że jego odpowiedź brzmiała tak samo jak inne słowa. Ale widzę w tym jakąś wartość dla walczących początkujących takich jak ja lol
rbenvenuto
poprzednie wersje nie są już dostępne w developer.android.com
Ferdinand.kraft
21

Dla każdego, kto nadal ma ten problem, zadziałało to dla mnie:

    cordova platform update android@latest

następnie skompiluj, a automatycznie pobierze najnowszą wersję stopni i powinna działać

Mans
źródło
2
+1 Działa to jako @ sierpnia 2017 i aktualizuje do [email protected]. Starsze odpowiedzi mogą, ale nie muszą, działać poprawnie. Ta sytuacja ciągle się zmienia i jest bezpośrednio spowodowana przez rezygnację z pakietu Android SDK 25.3.1 dla binarnego Androida, jak opisano tutaj: cordova.apache.org/announcements/2017/04/05/…
JK.
1
Nadal pracuję według stanu na marzec 2018 r. Często nie tworzę nowych projektów Cordova, jest to pierwszy od mojego poprzedniego komentarza. Miał ten sam could not find gradle wrapperbłąd. Musiałem ponownie poszukać rozwiązania na SO. Jest to poprawka dla każdego projektu, którą należy zastosować do każdego nowego projektu Cordova, który tworzysz. Głosowałbym dwa razy, gdybym mógł, to drugi raz, kiedy ta odpowiedź mnie ocaliła.
JK.
14

Nie ma potrzeby obniżania wersji Narzędzi Android. W systemie Windows Gradle przeniósł się z:

C:\Users\you_username\AppData\Local\Android\sdk\tools

do:

C:\Program Files\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper

Musisz więc tylko dostosować swoją ścieżkę, aby wskazywała właściwy folder.

herve
źródło
6
Zrobiłem odwrotnie, przenosząc opakowanie na moje AppData i działa dobrze! Dzięki ^ _ ^
Nicolas_LeBot 25.04.17
Skopiuj zawartość folderu otoki z tej ścieżki C: \ Program Files \ Android \ Android Studio \ plugins \ android \ lib \ templates \ gradle \ wrapper do C: / Android / Sdk / tools / templates / gradle / wrapper
inspirowane
9

jeśli masz ten błąd, kiedy ionic run android --device

## codova - android update 
npm install -g cordova
cordova platform update android
xsor
źródło
7

Właśnie skopiowałem wszystko z typowej instalacji Android Studio. Od: D: \ sw \ dev \ android \ studio \ plugins \ android \ lib \ templates

(cały katalog szablonów)

Do:

D: \ sw \ dev \ android \ sdk \ tools

Testowany z systemem Android w wersji jonowej

AlexGera
źródło
To było rozwiązanie w moim przypadku. Po tym rozwiązaniu możesz otrzymać komunikat licencyjny. Zobacz stackoverflow.com/questions/40383323/…
JonathanRomer
6

Ten problem występuje, gdy nie masz opakowania stopni w narzędziach SDK.

Tak jak w poprzednich odpowiedziach, możesz zaktualizować do ostatniej cordova-androidwersji (działa), ale jeśli chcesz nadal pracować z [email protected]i [email protected], po prostu skopiuj folder z Android Studio np .;

cd /Applications/Android\ Studio.app/Contents/plugins/android/lib/
cp -r templates/ $ANDROID_HOME/tools/templates
chmod +x $ANDROID_HOME/tools/templates/gradle/wrapper/gradlew

W moim przypadku używam cordova-plugin-fcmi został przetestowany ze starą wersją Cordova-android, więc nie mogę go używać [email protected](jeszcze nie).

Bruno Agutoli
źródło
5

W przypadku systemu Linux po prostu utwórz dowiązanie symboliczne, takie jak to:

ln -s /android/android-studio/plugins/android/lib/templates /android/sdk/tools/templates
Prochowiec
źródło
Nie przetestowałem rozwiązania dowiązania symbolicznego, ale w moim systemie /opt/android-studio/plugins/android/lib/templates/gradle/wrapper/gradlewnie ma uprawnień do wykonywania. Upewnij się, aby chmod to przed próbą.
Ferdinand.kraft
Nie mam szablonu / folderu poniżej sdk/tools.
PlayHardGoPro
5

Na Linuksie (w moim przypadku Ubuntu) po prostu zainstaluj gradle:

sudo apt-get install gradle

Edycja: Wygląda na to, że repo ubuntu ma tylko klasę 2.10, dla nowszych wersji: https://www.vultr.com/docs/how-to-install-gradle-on-ubuntu-16-10

Mawcel
źródło
1
Żadne z powyższych rozwiązań nie działało dla mnie. Korzystam z najnowszej wersji Cordova 7.0.1. Zainstalowanie Grade z repozytorium Ubuntu rozwiązało problem. Jest rok 2017 i wciąż Cordova nie wie, jak korzystać z wbudowanej wersji studia Android
sziraqui
3

Niedawno napotkałem również podobny problem, a po wykonaniu tej czynności działa:

Edytowałem plik w /etc/profile

sudo nano /etc/profile

export JAVA_HOME=/home/abdul/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

export ANDROID_HOME=/home/abdul/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

export GRADLE_ANDROID_HOME=/home/abdul/android-studio/gradle
export PATH=$PATH:$GRADLE_ANDROID_HOME/gradle-3.2/bin
export PATH=$PATH:$GRADLE_ANDROID_HOME/m2repository

Inne informacje (na wszelki wypadek):

Nie do końca pewny co do m2repositoryczęści, za pierwszym razem przechodzi on przez grandle, ale pojawia się kolejny błąd (gradlew-command-failed-with-exit-code-

  1. Sprawdzam, czy w studio Android repozytorium jest aktywne i nie jest aktywne, próbuję je aktywować, a kiedy spróbuję ponownie (kompilacja Cordova na Androida), pobiera kilka innych plików, może z repozytorium? A potem, kiedy usuwam ścieżkę, nadal działa. (również dzięki próbce Marcina Orłowskiego, dzięki czemu mogę lepiej zrozumieć ścieżkę eksportu).

Używam:

  • Linux Mint Serena
  • węzeł: v6.10.3
  • npm: 3.10.10
  • Kordowa: 7.0.0
  • Android Studio: 2.3.1
  • Narzędzia platformy Android SDK: 25.0.5
  • Narzędzia Android SDK: 26.0.2

Mam nadzieję, że może pomóc każdemu, kto może mieć taki sam problem jak mój i też tego potrzebuje.

Dzięki

Abdul Muhit
źródło
2

Żadne z rozwiązań nie działało dla mnie na dzień dzisiejszy. Moja sytuacja była taka, że ​​zaktualizowałem moje studio Androida. Najpopularniejsza rzecz, aby zastąpić folder narzędzi najnowszym, nie działałaby dla mnie. W niektórych przypadkach infact nie jest wymagany.

npm update -g cordova zrobił dla mnie lewę.

Następnie usunąłem platformę i dodałem ją ponownie.

ionic platform remove android

ionic platform add android

To działa dla mnie w Ionic. jestem pewiencordova platform remove/add android że zrobię to samo. Jednak nie przetestowane.

Znów działa !

kushalvm
źródło
2

Po wypróbowaniu wszystkiego tutaj dwa razy w innej kolejności, przeinstalowałem wszystko i zanim to cordova platform add androidzrobiłem, poszedłem templates/gradlei pobiegłem gradlew.bat. Po zakończeniu udało mi się bez problemu dodać platformę Android.

Adwokat diabła
źródło
1

To rozwiązało dla mnie:

cordova platform update [email protected]
Mirko
źródło
0

Biegać:

cordova platform update [email protected]

I upewnij się, że zmienne środowiskowe Android Studio i Android Studio odnoszą się do tej samej lokalizacji.

Naprawiam to, kopiując Android Studio z:

D:\Program Files\Android

do

C:\Program Files\Android
Avihai Cohen
źródło
0

Po aktualizacji Cordova do wersji 7.0.x ścieżka stopni została zmieniona, jak omówiono powyżej. Aby uruchomić go przed opublikowaniem oficjalnej poprawki, po prostu ręcznie zainstaluj gradę i ustaw go w swoim środowisku.

  1. Idź https://gradle.org/install pobierz pakiety binarne
  2. Rozpakuj go, pamiętaj ścieżkę, np. Mój w: E: \ Gradle
  3. Ustaw zmienne środowiskowe, tak jak w systemie Windows dodaj E: \ Gradle \ bin

Otóż ​​to.

Peter.Wang
źródło
0

Po napotkaniu tego samego problemu wystarczy zmienić nazwę pakietu w config.xml, identyfikator atrybutu o nazwie bez „-” wewnątrz ...

to znaczy

com.web-projet.appname

przemianowany na:

com.webprojet.appname

i wszystko było w porządku ...

Jeśli to pomoże.

Jean-Luc Aubert
źródło
0

Zainstalowanie Cordova w wersji 5.0 pomaga mi:

npm install -g [email protected]
fvukovic
źródło
0

Korzystam z Ubuntu 16.04 i dla mnie działało, używając tylko dwóch poleceń: -

ionic cordova platform rm android
ionic cordova platform add [email protected]
Niraj
źródło
-1

Proste i proste rozwiązanie dla MAC

Mój problem był

cordova build android
ANDROID_HOME=/Users/jerilkuruvila/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK.
Looked here: /Users/jerilkuruvila/Library/Android/sdk/tools/templates/gradle/wrapper

Rozwiązanie

jerilkuruvila@Jerils-ENIAC tools $ cd templates
-bash: cd: mkdir: No such file or directory
jerilkuruvila@Jerils-ENIAC tools $ mkdir templates
jerilkuruvila@Jerils-ENIAC tools $ cp -rf gradle templates/
jerilkuruvila@Jerils-ENIAC tools $ chmod a+x templates/

Cordova buduje Androida ponownie działa teraz !!!

Jeril Kuruvila
źródło
1
Wyjaśniasz to? Dlaczego tak się dzieje
wilfredonoyola