Błąd „Nie udało się zainstalować następujących pakietów Android SDK, ponieważ niektóre licencje nie zostały zaakceptowane”


177

Otrzymuję ten błąd w jitpack, próbowałem wszystkiego w Internecie. Poniżej mój błąd

Failed to install the following Android SDK packages as some licences have not been accepted.
     platforms;android-26 Android SDK Platform 26
     build-tools;28.0.3 Android SDK Build-Tools 28.0.3
  To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.

A kiedy uruchomię ./sdkmanager --licenses

 All SDK package licenses accepted.======] 100% Computing updates...             

Użycie sudo z powyższym poleceniem daje

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    ... 5 more

dodatkowy dziennik błędów

File /opt/android-sdk-linux/.android/repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 28.0.3 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
Checking the license for package Android SDK Platform 26 in /opt/android-sdk-linux/licenses
Warning: License for package Android SDK Platform 26 not accepted.

Nie wiem, dlaczego szuka tam licencji, gdy moja lokalizacja SDK jest inna


1
Wydaje się, że jest tu trochę szalone rozwiązanie , chociaż może się udać!
Jake Lee

2
Miałem ten sam problem. Pobrałem odpowiednie zestawy SDK przez Android Studio i nigdy nie zapytałem mnie o jakiekolwiek licencje. Kolejny niepotrzebny problem.
Steve Smith

Odpowiedzi:


337

Musisz zaakceptować licencje przed rozpoczęciem budowy.

Zgodnie z dokumentacją Android SDK , w zależności od lokalizacji sdkmanager możesz użyć następującego polecenia: --licenseswydaje się, że brakuje opcji Docs on .

yes | sdkmanager --licenses

Dystrybucje GNU / Linux:

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

System operacyjny Mac:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home
yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Okna:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

Trzepotanie:

> flutter doctor --android-licenses

52
Mam ten błądException in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
HendraWD

8
@HendraWD Jeśli zainstalowałeś dodatkową Javę na swoim komputerze (Uwaga: Android Studio ma własną Javę), powinieneś upewnić się, że ma tę samą wersję. W przeciwnym razie może wystąpić ten błąd. Rozwiązałem to właśnie teraz, ustawiając ścieżkę „Android Studio / jre” na JAVA_HOME.
Licat Julius

10
Dla zainstalowany Mac bez Javy, musiałem export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home, cd ~/Library/Android/sdk/tools/bin, ./sdkmanager --licenses.
Graham Perks

1
FWIW: Wygląda również na to, że obsługiwany jest tylko JDK <11, i co zabawne, Ubuntu 18.04 jest dostarczany openjdk 11jako domyślny jdk. Po upewnieniu się, że korzystam z obsługiwanej wersji Java, zamiast tego otrzymałem Error: Could not create the Java Virtual Machinei stwierdziłem, że muszę wywołać sdkmanagerza pomocą sudo.
JHH

Musiałem uruchomić polecenie z sudo w ubuntu, tak | sudo ~ / Android / Sdk / tools / bin / sdkmanager --licenses
mramsath

59

w systemie operacyjnym Windows przejdź do ścieżki sdkmanager, a następnie wykonaj

./sdkmanager.bat --licenses

Możesz znaleźć swój sdkmanager w C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

Aby znaleźć rzeczywistą ścieżkę Android SDK, postępuj zgodnie z zaznaczonym na czerwono obszarem na poniższym obrazku

wprowadź opis obrazu tutaj


1
Następnie możesz przejrzeć każdą licencję i odpowiednio ją zaakceptować przez to samo okno bash (Windows CMD zgłasza błąd. Użyj git bash lub innego zamiast Windows CMD)
Tharusha


32

W Android Studio przejdź do Narzędzia -> Menedżer SDK .

Przejdź do zakładki SDK Tools .

Wybierz narzędzia wiersza polecenia Android SDK (najnowsze) i pobierz, naciskając Zastosuj .

wprowadź opis obrazu tutaj

W systemie Windows plik sdkmanager.bat można znaleźć pod adresem

C: \ Users \ [your_user] \ AppData \ Local \ Android \ Sdk \ cmdline-tools \ latest \ bin

wprowadź opis obrazu tutaj


20

Możesz zaakceptować umowy licencyjne dotyczące wymienionych zestawów SDK, przechodząc do Menedżera SDK (Ustawienia> [Wyszukaj Android SDK]), a następnie znajdź pakiety wymienione w komunikacie o błędzie i tam je. Są szanse, że znajdziesz pakiety SDK, które nie są w pełni zainstalowane, a ich zainstalowanie poprosi Cię o zaakceptowanie umowy licencyjnej.wprowadź opis obrazu tutaj


13

używać android-28z build-toolswersją at 28.0.3; lub build-toolsw wersji 26.0.3.

lub spróbuj tego: yes | sudo sdkmanager --licenses


2
W systemie Windows możesz po prostu uruchomić sdkmanager.bat --licensesi wpisać ywszystkie pytania.
Agung Santoso

13

MacOS Catalina

Krok 1: Zmiana preferencji Android Studio

  1. Otwórz swoje Android Studio
  2. Naciśnij Command + lub przejdź do lewego górnego rogu AppBar Android Studio> Preferencje .
  3. W lewym okienku wybierz opcję Wygląd> Ustawienia systemu> Android SDK
  4. Wybierz Narzędzia SDK obok Platformy SDK i w obszarze Lokalizacja zestawu SDK systemu Android
  5. Zaznacz narzędzia wiersza poleceń Android SDK (najnowsze) i naciśnij przycisk OK .
  6. Zaczekaj na zakończenie instalacji

Lokalizowanie preferencji Android Studio

Preferencje Android Studio

Krok 2 (dla użytkowników Flutter):

  1. Przejdź do terminala i uruchom następujące polecenie

flutter doctor --android-licenses

Krok 2 (dla użytkowników Androida):

  1. Przejdź do terminala i uruchom następujące polecenie

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

yes | ~/Library/Android/sdk/tools/bin/sdkmanager --licenses


Doskonała i bardzo przydatna odpowiedź. Ze wszystkich odpowiedzi i różnych rozwiązań, które wypróbowałem, tylko to działało dobrze. Używam ionic i mac, a powyższe rozwiązanie było idealne, a szczegółowe kroki były bardzo pomocne. Dziękuję Ci.
Neel

11

To działa dla mnie:

yes | ./sdkmanager "platforms;android-28"

yes | ./sdkmanager "build-tools;28.0.3"

yes | ./sdkmanager --licenses


1
U mnie zadziałało dobrze (Ubuntu 19.10, IntelliJ 2019.2.4). Musiałem tylko zainstalować openJDK, ponieważ miałem tylko osadzony JDK, niedostępny z terminalasudo apt install openjdk-8-jdk
56ka


4

w systemie Windows przejdź do katalogu ścieżki sdkmanager w cmd

Sdkmanager można znaleźć w C: \ Users \ USER \ AppData \ Local \ Android \ Sdk \ tools \ bin

następnie wykonaj następujące polecenie:

sdkmanager --licenses

po tym kilka razy poprosi o zaakceptowanie umowy licencyjnej, a następnie zaakceptuje wszystko, wpisując y w cmd


2

Jeśli używasz trzepotania, wykonaj następujące czynności

1.open the command prompt

Następnie następujące polecenie

2.C:\Users\niroshan>flutter doctor

Zobaczysz problemy w następujący sposób

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 1.22.2, on Microsoft Windows [Version 10.0.17763.1339], locale en-US)

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    X Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Android Studio (version 4.1.0)
    X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code (version 1.50.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.

Właściwie to, co musisz uruchomić, to poniższe polecenie

C:\Users\niroshan>flutter doctor --android-licenses

1

W systemie Mac OS 10.15.1 wystąpił ten sam błąd nawet po zaakceptowaniu wszystkich licencji, uruchamiając sdkmanager --licensesDziała po zaktualizowaniu konfiguracji ścieżki ANDROID_HOME w ~ / .bash_profile do następującego

export ANDROID_HOME=/Users/your_username/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
export PATH=$PATH:~/Library/Android/sdk/platform-tools

I załaduj ponownie ~ / .bash_profile

source ~/.bash_profile 

1

Aby dodać do odpowiedzi, możesz również przejść do katalogu sdkmanager oraz w powłoce podrzędnej i zaakceptować tam licencje

(
    cd /home/user/android-sdk-linux/tools/bin
    yes | ./sdkmanager --licenses
)

1

Właśnie skończyłem Plik -> Unieważnij pamięci podręczne i uruchom ponownie Następnie zainstaluj brakujące pakiety. Pracował dla mnie.


1

Próbowałem wielu rozwiązań, ale nie działały. Poniższe rozwiązanie działa u mnie.

zlokalizuj plik sdkmanager w Android SDK.

W moim przypadku: ~ / Android / Sdk / tools / bin

idź do tej ścieżki: cd ~/Android/Sdk/tools/bin

Akceptuj licencje ręcznie: ./sdkmanager --licenses wpisz Tak lub y


1

w moim przypadku właśnie zainstalowałem nową wersję Android Studio na nowym laptopie i sklonowałem stare repozytorium, gdzie buildToolsVersion "30.0.2"na poziomie aplikacji build.gradle. Właśnie zaktualizowałem do tego, 30.0.3które studio Android polecało samodzielnie i problem zniknął


0

Wypróbowałem to na Android Studio i zadziałało dla mnie:

Narzędzia> Menedżer SDK (pamiętaj, aby sprawdzić poniżej opcję Pokaż pakiety)

Platformy SDK> Pokaż pakiety> Android - 28 Platformy SDK> Pokaż pakiety> Android - 28

Narzędzia SDK> Pokaż pakiety> 28.0.3 Narzędzia SDK> Pokaż pakiety> 28.0.3


0

W systemie Windows:

  1. Dodaj zmienne środowiskowe USER:

UWAGA: Ścieżka powinna być dołączona

JAVA_HOME           %ProgramFiles%\Android\Android Studio\jre
ANDROID_SDK_ROOT    %LocalAppData%\Android\Sdk
Path                %LocalAppData%\Android\Sdk
  1. Uruchom poniższe polecenie, aby zaakceptować licencje:

UWAGA: Zaakceptuj wszystkie licencje (powiedzmy y)

%ANDROID_SDK_ROOT%/tools/bin/sdkmanager.bat --licenses
  1. Teraz uruchom aplikację:

(jak poniżej lub inne polecenie, które się nie powiodło):

cd \myapp\
react-native run-android

0

W moim przypadku aktualizacja buildToolsVersion na poziomie aplikacji build.gradle działała idealnie. Jeśli nie wiesz, którego użyć, możesz utworzyć nowy projekt i skopiować z niego buildToolsVersion do istniejącego.


0

Jeśli otrzymujesz ten błąd podczas korzystania z Fluttera, uruchom poniższe polecenie w wierszu polecenia.

flutter doctor --android-licenses

Jeśli po uruchomieniu powyższego polecenia pojawi się poniższy błąd

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)

Następnie wykonaj poniższe czynności

  1. Otwórz studio Android
  2. Przejdź do menedżera SDK
  3. Kliknij kartę narzędzi SDK
  4. Zainstaluj narzędzie wiersza poleceń Android SDK
  5. Biegnij flutter doctor --android-licensesponownie
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.