Ошибка «Не удалось установить следующие пакеты Android SDK, так как некоторые лицензии не были приняты»

Я получаю эту ошибку в jitpack, я пробовал все в Интернете. Ниже моя ошибка

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.

И когда я запускаю ./sdkmanager --licenses

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

Использование sudo с приведенной выше командой дает

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

дополнительный журнал ошибок

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.

Я не знаю, почему он проверяет лицензии там, когда мое местоположение sdk другое

Там вроде немного бешеный решение здесь, может хоть сработает!

Jake Lee 21.01.2019 12:02

У меня такая же проблема. Я загрузил соответствующие SDK через Android Studio, и он ни разу не спросил меня о каких-либо лицензиях. Еще одна ненужная проблема.

Steve Smith 08.08.2019 10:23

Я «принял» лицензии, но, должно быть, они не были сохранены, поскольку каталог android sdk был доступен только для чтения. Chmod 777-ing каталог sdk заставил меня работать. sudo chmod -R 0777 /opt/android-sdk

nathanfranke 09.07.2021 02:17

@nathanfranke это хороший момент - если каталоги Android SDK не доступны для записи, принятие лицензии не сохраняется. Вероятно, вы также можете обойти это, запустив от имени пользователя, которому принадлежат эти папки, или от имени группы, владеющей папками, в зависимости от того, как были установлены папки.

Dan Gravell 02.09.2021 14:25

sudo chown Пользователь -R /usr/lib/android-sdk

mullerivan 14.11.2021 23:46
371
5
381 498
30
Перейти к ответу Данный вопрос помечен как решенный

Ответы 30

используйте android-28 с build-tools в версии 28.0.3; или build-tools в версии 26.0.3.

или попробуйте это: yes | sudo sdkmanager --licenses

В Windows вы можете просто запустить sdkmanager.bat --licenses и ввести y для всех вопросов.

Agung Santoso 13.04.2019 07:43

На данный момент кажется ошибкой: https://issuetracker.google.com/issues/123054726

Решение, которое сработало для меня:

Создайте файл .travis.yml в каталоге вашего проекта и скопируйте следующие строки:

before_script:
- mkdir "$ANDROID_HOME/licenses" || true
- echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"

Ссылка: https://github.com/square/RxIdler/pull/18/files

Ответ принят как подходящий

Перед сборкой необходимо принять лицензии.

В соответствии с Документы Android SDK вы можете использовать следующую команду в зависимости от местоположения sdkmanager: Однако опция Docs on --licenses, похоже, отсутствует.

yes | sdkmanager --licenses

Дистрибутивы GNU/Linux:

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

макОС:

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

Окна:

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

Флаттер:

> flutter doctor --android-licenses

Я получил эту ошибку Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

HendraWD 10.06.2019 11:29

@HendraWD Если вы установили на свой компьютер дополнительную Java (Примечание: в Android Studio есть собственная Java), вы должны убедиться, что у них одинаковая версия. В противном случае может возникнуть эта ошибка. Я решил это только сейчас, установив путь «Android Studio/jre» к JAVA_HOME.

Licat Julius 15.07.2019 09:35

Для Mac без установленной Java мне пришлось использовать export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home, cd ~/Library/Android/sdk/tools/bin, ./sdkmanager --licenses.

Graham Perks 31.10.2019 15:38

FWIW: Также кажется, что поддерживается только JDK < 11, и, как ни странно, Ubuntu 18.04 поставляется с openjdk 11 в качестве jdk по умолчанию. Убедившись, что я использую поддерживаемую версию Java, вместо этого я получил Error: Could not create the Java Virtual Machine и обнаружил, что мне нужно вызывать sdkmanager с помощью sudo.

JHH 28.01.2020 20:25

Мне пришлось запустить команду с помощью sudo в Ubuntu, да | sudo ~/Android/Sdk/tools/bin/sdkmanager --licenses

mramsath 20.06.2020 16:02

Для новичков %ANDROID_HOME% означает путь, по которому установлен SDK.

jan4co 05.10.2020 06:49

в Windows нажмите WIN+R и выполните команду: %ANDROID_HOME%/tools/bin/sdkmanager --licenses

Nouar 23.11.2020 15:14

@HendraWD этот ответ устранил проблему с ошибкой Xml: stackoverflow.com/a/68210820/191463

Jonathan. 21.09.2021 15:59

Это работает для меня:

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

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

yes | ./sdkmanager --licenses

У меня работало нормально (Ubuntu 19.10, IntelliJ 2019.2.4). Мне просто нужно было установить openJDK, потому что у меня был только встроенный JDK, недоступный с терминала sudo apt install openjdk-8-jdk.

56ka 07.11.2019 03:47

в ОС Windows перейдите к вашему пути sdkmanager, затем выполните

./sdkmanager.bat --licenses

Вы можете найти свой sdkmanager на C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

Чтобы найти фактический путь Android SDK, следуйте по отмеченной красным области на картинке ниже.

После этого вы можете просмотреть каждую лицензию и принять их соответствующим образом через одно и то же окно bash (Windows CMD выдает ошибку. Используйте git bash или другой вместо Windows CMD)

Tharusha 22.02.2020 21:42

Я попробовал это и по какой-то причине получил ошибку Java classdefnotfound для XmlSchema.

John Gorenfeld 21.04.2021 11:22

Если вы работаете с Flutter, то эта команда определенно подойдет вам.

flutter doctor --android-licenses

Это не работает. Не говорите определенно, когда это не определенно.

Kishan Solanki 01.07.2021 10:21

В Mac OS 10.15.1 я получил ту же ошибку даже после того, как принял все лицензии, запустив sdkmanager --licenses. Это сработало после того, как я обновил конфигурацию пути ANDROID_HOME в ~/.bash_profile до следующего

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

И перезагрузите ~/.bash_profile

source ~/.bash_profile 

Чтобы добавить ответы, вы также можете перейти в каталог sdkmanager и во вспомогательную оболочку и принять там лицензии.

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

Я только что сделал File -> Invalidate caches и перезапустил Затем установите недостающие пакеты. Работал на меня.

Вы можете принять лицензионные соглашения указанных SDK, перейдя в Диспетчер SDK (Настройки > [Поиск Android SDK]), затем найдите пакеты, указанные в сообщении об ошибке, и найдите их там. Скорее всего, вы обнаружите, что SDK не установлены полностью, и при их установке вам будет предложено принять лицензионное соглашение.

Спасибо за это, много имеет больше смысла принимать лицензии в AS, чем возиться в командной строке. Сработало очарование, должно быть наверху.

dKen 20.07.2021 15:40

@dKen без проблем. Спасибо, что оценили это.

hamthenormal 22.07.2021 04:58

Мне также нужно было обновить SDK, но чтобы приложение наконец скомпилировалось, мне также нужно установить Android-SDK-Command-Line-Tools.

Thomas S. 02.12.2021 16:50

MacOS Каталина

Шаг 1. Изменение настроек Android Studio

  1. Откройте свою Android Studio
  2. Нажмите Команда+, или перейдите в верхнюю левую панель приложений Android Studio> Настройки.
  3. На левой панели выберите Внешний вид > Системные настройки > Android SDK.
  4. Выберите Инструменты SDK рядом с Платформы SDK и под Расположение Android SDK.
  5. Установите флажок Инструменты командной строки Android SDK (последняя версия) и нажмите кнопку В ПОРЯДКЕ.
  6. Дождитесь окончания установки

Locating Preferences of Android Studio

Android Studio Preferences

Шаг 2 (для пользователей Flutter):

  1. Перейдите в Терминал и выполните следующую команду

flutter doctor --android-licenses

Шаг 2 (для пользователей Android):

  1. Перейдите в Терминал и выполните следующую команду

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

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

Идеальный и очень полезный ответ. Из всех ответов и различных решений, которые я пробовал, только это сработало для меня хорошо. Я использую ionic и mac, и приведенное выше решение было идеальным, а подробные шаги были очень полезными. Спасибо.

Neel 30.12.2020 17:11

Большое спасибо. Шаги 1 и 2 для пользователей флаттера сработали для меня. В настоящее время я использую macOS Big Sur 11.6 и новичок в настройке флаттера и студии Android вместе. Еще раз спасибо!

Mary Obiagba 20.12.2021 01:53

В Android-студия перейдите к Инструменты -> Диспетчер SDK.

Перейдите на вкладку Инструменты SDK.

Выберите Инструменты командной строки Android SDK (последняя версия) и загрузите, нажав Применять.

На Окна вы можете найти sdkmanager.bat по адресу

C:\Users\[ваш_пользователь]\AppData\Local\Android\Sdk\cmdline-tools\latest\bin

Это лучший ответ для Windows! Спасибо.

Oleg Kazakov 06.09.2021 12:24

Это также то, что работало для меня в OS X. Опция терминала sdkmanager не работала.

obaqueiro 13.10.2021 22:50

Это решение работает для Ubuntu V20.04.

MosesK 03.11.2021 11:19

Работает на Windows 10.

Displee 22.11.2021 12:48

Лучший ответ, безупречно работает на Win11 :)

Felixkruemel 25.11.2021 08:56

да! Работал на Ubuntu 20.04 - там, где другое решение не помогло

Peter 05.01.2022 17:17

Я пробовал много решений, но не работал для меня. Решение ниже работает для меня.

найдите файл sdkmanager в Android SDK.

В моем случае : ~/Android/SDK/инструменты/бен

иди по этому пути: cd ~/Android/Sdk/tools/bin

Принять лицензии вручную: ./sdkmanager --licenses Введите Да или д

в ОС Windows перейдите в каталог пути sdkmanager в cmd

Вы можете найти свой sdkmanager в C:\Users\USER\AppData\Local\Android\Sdk\tools\bin

затем выполните следующую команду:

sdkmanager --licenses

после этого он несколько раз попросит принять лицензионное соглашение, а затем принять все, просто набрав у в cmd

Попробовал это на Android Studio, и у меня это сработало:

Инструменты > Диспетчер SDK (обязательно установите флажок Показать пакеты ниже)

Платформы SDK > Показать пакеты > Android – 28 SDK Platforms > Show Packages > Android - 28

Инструменты SDK > Показать пакеты > 28.0.3 SDK Tools > Show Packages > 28.0.3

Если вы используете флаттер, выполните следующие шаги.

1.open the command prompt

Затем следующая команда

2.C:\Users\niroshan>flutter doctor

И вы увидите проблемы следующим образом

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.

На самом деле вам нужно запустить следующую команду

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

В Windows:

  1. Добавьте переменные среды USER:

ПРИМЕЧАНИЕ. Путь должен быть добавлен

JAVA_HOME           %ProgramFiles%\Android\Android Studio\jre
ANDROID_SDK_ROOT    %LocalAppData%\Android\Sdk
Path                %LocalAppData%\Android\Sdk
  1. Запустите следующую команду, чтобы принять лицензии:

ПРИМЕЧАНИЕ. Примите все лицензии (скажем, y).

%ANDROID_SDK_ROOT%/tools/bin/sdkmanager.bat --licenses
  1. Теперь запустите ваше приложение:

(как показано ниже, или другая команда, которая не удалась для вас):

cd \myapp\
react-native run-android

В моем случае обновление buildToolsVersion на уровне приложения build.gradle работало отлично. Если вы не знаете, что использовать, вы можете создать новый проект и скопировать buildToolsVersion из него в существующий.

в моем случае я просто установил новую версию студии Android на новый ноутбук и клонировал старый репозиторий, где buildToolsVersion "30.0.2" на уровне приложения build.gradle. Я только что обновился до 30.0.3, который рекомендуется андроид студия сам по себе, и проблема исчезла.

Если вы получаете эту ошибку при использовании Flutter, выполните приведенную ниже команду в командной строке.

flutter doctor --android-licenses

Если вы получаете сообщение об ошибке ниже после выполнения вышеуказанной команды

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)

Затем, пожалуйста, выполните следующие шаги

  1. Открытая андроид-студия
  2. Перейти к диспетчеру SDK
  3. Щелкните вкладку инструментов SDK.
  4. Установите инструмент командной строки Android SDK
  5. Запустите flutter doctor --android-licenses снова

Это работа для меня

Kasun Hasanga 11.01.2021 19:14

Это действительно полезно

Pulsara Sandeepa 09.05.2021 21:29

Это работает для меня в Windows 10:

C:
cd \Users\YOUR_USER\AppData\Local\Android\Sdk\cmdline-tools\latest\bin
sdkmanager.bat --licenses

После да всем

https://thewikihow.com/video_g789PvvW4qo мне очень помог. Что было сделано, так это открыть SDK Manager и загрузить любую новую платформу SDK (не волнуйтесь, это не повлияет на желаемый уровень API).

Потому что при загрузке любых платформ SDK (уровень API) вы должны принять лицензии. Вот этот трюк у меня сработал.

В Android Studio перейдите по адресу: Инструменты > Диспетчер SDK > Инструменты SDK

В правом нижнем углу установите флажок «Показать сведения о пакете» и загрузите нужную версию sdk:

Android Studio Sdk Tools

Проблема: лицензия SDK не принята

Шаг 1. Откройте диспетчер SDK.

После открытия диспетчера SDK откройте вкладку инструментов SDK, как показано ниже.

Шаг 2: Отметьте вариант Show Package Details

В нем будут перечислены все версии инструментов SDK.

Шаг 3. Установите необходимую версию инструмента SDK.

Проверьте конкретную версию инструментов SDK, которая жалуется (для меня это была 29.0.3, как показано выше на первом снимке экрана) из списка, примите соглашение в открывшемся диалоговом окне, и все готово.

Это решение работало хорошо, но некоторые другие решения не работали.

Nick N 14.07.2021 05:32

@NickN Рад, что тебе помогло! :)

Damercy 14.07.2021 22:38

БОЛЬШОЕ СПАСИБО БРО. ЭТО РАБОТАЛО НА WINDOWS. Код из учебника udacity не работал из-за этой проблемы, и ваше решение спасло мой день.

Dr. Mukama 18.07.2021 21:25

@Добро пожаловать, доктор Мукама. :)

Damercy 20.07.2021 11:50

Также работал для меня, когда другие не сделали. Спасибо!

bigjosh 29.08.2021 07:26

Работал для меня на Apple Silicon

Pablo Miranda 01.10.2021 19:41

@ПаблоМиранда Вау! Здорово! :)

Damercy 02.10.2021 15:40

Ты лучший бро!!!

jjaur's 04.10.2021 23:38

@jjaur, спасибо, чувак! ^_^

Damercy 05.10.2021 15:39

спасибо, чувак, здесь все сработало, используя твое решение

Armando Marques da S Sobrinho 05.01.2022 14:09

У меня была такая же проблема при попытке запустить приложение на моем устройстве Android в другом проекте, где я работал с какой-то старой версией tomcat8 и должен был установить переменную и значение JAVA_OPTS. Поэтому я удалил эту системную переменную для JAVA_OPTS, для которой было установлено значение переменной -Xms1024m (удалите системную переменную JAVA_OPTS, но вы также можете сохранить ее для использования в будущем, если вам нужно вернуться к использованию ваших старых проектов, которым это может понадобиться).

Затем запустите bat-файл диспетчера SDK по пути к SDK: PS C:\Users[your_pc_username]\AppData\Local\Android\Sdk\tools\bin> .\sdkmanager.bat --licenses

Примите все лицензии (Y).

Как я решаю эту проблему (AndroidStudio 4.2)

  • Нажмите на вкладку Build
  • Выберите Failed to install the following Android SDK packages ... (предупреждение)
  • Нажмите Установите отсутствующие пакеты SDK

Однострочное решение с переходом на java 8:

sudo apt-get install openjdk-8-jdk -y && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 && flutter doctor --android-licenses

Для Android-студия Arctic Fox у меня это решилось установкой Библиотека лицензирования Google Play.

  1. Перейти к настройкам
  2. Развернуть Appearance & Behavior
  3. Затем разверните System Settings
  4. Выберите Android SDK и перейдите на вкладку SDK Tools
  5. Установить Библиотека лицензирования Google Play

На Убунту это все еще не работало, используя предложенные ответы.

Вот что сработало для меня:

cd Папка full-path-to-bin, где находится sdkmanager.

yes | ./sdkmanager --licenses --sdk_root = "full-path-to-bin"

В опции --help показано, что мы можем передать ему общие аргументы, которые в итоге приняли ВСЕ лицензии:

Usage:
...
sdkmanager --licenses [<common args>]
...
Common Arguments:
    --sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool

Я переместил папку Sdks и Avds, так как она использовала много памяти на локальном диске c, но после этого у меня возникла вышеуказанная проблема.

Для меня Invalidate Caches/Restart решить проблему

Файл->Недействительные кеши/Перезапустить

Другие вопросы по теме