Не могу принять лицензионное соглашение Android SDK Platform 24


119

При попытке установить платформу Android в проекте Cordova я получаю следующую ошибку. Я следил за этим руководством: https://cordova.apache.org/docs/en/latest/guide/cli/

Ошибка возникает при выполнении следующего: $ cordova platform add android --save

Возникла проблема при настройке корневого проекта "android". Вы не приняли лицензионные соглашения на следующие компоненты SDK: [Android SDK Platform 24].

Я всюду искал способы принять лицензионное соглашение Android SDK Platform 24 , но безуспешно.

Спасибо заранее.


1
для Windows откройте диспетчер SDK с правами администратора. Снимите выделение со всех, найдите SDK Platform 24, проверьте это, установите. Там вы можете принять лицензию.
Nick Chan Abdullah

1
для меня проблема заключалась в установке android-sdkиз нескольких мест ( brew, brew caskи android-studio), а не в вызове соответствующей sdkmanager --licensesкоманды
Пьер-Алексис де Солминихак

Ответы:


167

Вы также можете просто выполнить

$ ANDROID_HOME / tools / bin / sdkmanager --licenses

Или для Windows выполнить

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

(кредит для команды Windows на @ puneet-kumar)


На Mac SDK находится в / Library / Android /
Тайлер Чонг

Отлично работал и с Android 26 и 27. Была такая же проблема, но это произошло, когда моя кордова обновила gradle с 4.0 до 4.1
Тревор

@PuneetKumar, эта команда у меня не работает. у меня есть файл sdkmanager.bat в папке tools / bin
Heemanshu Bhalla

в linux - bash: / tools / bin / sdkmanager: нет такого файла или каталога
Niladri Banerjee - Uttarpara

У вас есть способ сделать это неинтерактивно?
Питер Маунс

163

Я не совсем уверен, как работает кордова, но как только лицензии принимаются, он создает файл. Вы можете создать этот файл вручную. Это описано по этому вопросу , но вот команды для создания необходимого файла лицензии.

Linux:

mkdir "$ANDROID_HOME/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"

Окна:

mkdir "%ANDROID_HOME%\licenses"
echo |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"

Привет, Майк, из какого каталога я выполняю эти команды? Спасибо!
Daneye 02

Рабочий каталог не имеет значения, если определена переменная среды $ ANDROID_SDK. Это также может быть $ ANDROID_HOME. Одно из них следует определить; Это расположение Android SDK. Вы можете ввести «printenv» и выполнить поиск по заданным переменным. Или просто "echo $ ANDROID_HOME", чтобы увидеть, установлен ли он. Предполагается, что в linux ... windows переменные среды будут ссылаться на% ANDROID_SDK% вместо $ ANDROID_SDK.
Майк

5
Вместе с ошибкой Кордова отобразит путь к ANDROID_HOME (на случай, если вы не сможете его найти)! Если ANDROID_HOME не установлен, вы можете установить его вручную, как это, set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk"и выполнить указанные выше команды.
Арно ван Оордт 02

Использование Android Studio и установка Android версии 24 устранили эту проблему для меня.
Дэвид Дуглас

3
Несмотря на то, что установлено 24 инструмента сборки sdk. моя проблема не была решена на компьютере Mac. Решили эту проблему, вручную создав папку лицензий и файл android-sdk-license, как описано выше
kushalvm

52

У меня была эта проблема на Mac OS X 10.12.1 с Cordova 6.4.0 и Android Studio 2.2.3.

Когда я установил Android Studio, он установил платформу 25, но не 24. Чтобы установить 24:

  • Откройте Android Studio.
  • Открыть Android Studio Menu > Preferences.
  • Appearance & Behavior > System Settings > Android SDK
  • Поставьте галочку напротив Android 7.0 (Nougat) | 24
  • Нажмите ОК и следуйте инструкциям.

Примечание: не забудьте настроить версию Android на отсутствие платформы SDK
Hugo H

2
Я сделал это, но, вероятно, я мог бы сэкономить немного времени, нажав «Показать сведения о пакете» и выбрав только SDK, вместо того, чтобы также устанавливать Google API и исходный код.
Аарон

Прошло несколько недель с момента моей последней сборки. повторное создание моего приложения. Я столкнулся с той же проблемой, описанной выше, но решил ее после выполнения этого решения.
Jur P

27

У меня была точно такая же проблема. Затем я установил «Android 7.0 (API 24)> SDK Platform», и это сработало.

введите описание изображения здесь


26

Самый простой способ решить эту проблему - принять лицензии с помощью следующей команды:

ОС Windows:

C:\Users\{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

Вам будут представлены заявления об отказе от ответственности. Чтобы продолжить разработку, вам необходимо ответить «y» на все заявления об отказе от ответственности.


25

Перейти к Android\sdk\tools\bin

Ни одно из вышеперечисленных решений не помогло мне, и, наконец, эта единственная строка приняла все лицензии Android.

yes | sdkmanager --licenses && sdkmanager --update

1
Если windowsпользователи получают сообщение об ошибке. Попробуйте sdkmanager --licenses && sdkmanager --updateпринять лицензии вручную.
Рахмат Али

Для пользователей MacOs перейдите в / Users / USERNAME / Library / Android / sdk / tools / bin и yes | ./sdkmanager --licenses. и ./sdkmanager - help, чтобы узнать больше.
Пушпак Шарма

13

У меня возникла проблема, вам не нужно копировать или создавать какую-либо папку, просто будьте осторожны с вашим путем к SDK, он должен совпадать с переменной окружения (ANDROID_HOME), что было не так для меня, не знаю почему.

sdk location


13

В моем случае я не использую студию Android (я использую eclipse). Я сделал следующий шаг: Решил, просто выполнив команду

android-sdks/tools/bin$ ./sdkmanager --update

Которая создала licensesкаталог и добавила в него файл android-sdk-license.

Затем вы можете запустить ( licensesопция недоступна, если вы не выполнили шаг выше)

android-sdks/tools/bin$ ./sdkmanager --licenses

и принимаю лицензию (впрочем, в моем случае это делать не нужно)


9

Я установил android sdk build-tools 24 (текущая версия 24.0.3) через диспетчер SDK. Путь к открытию диспетчера SDK указан в прикрепленном img файле. Это решило мою проблему SDK Manager


1
Я не вижу прикрепленного изображения, но у меня это тоже сработало. В Android Studio есть кнопка для SDK Manager, а затем вы можете открыть автономный менеджер SDK, который позволит вам довольно легко загрузить все материалы для Android 24
Йонатан Коган,

Я снова столкнулся с той же проблемой при установке с помощью сборки Cordova на другом компьютере с ОС Windows 7. На этот раз у меня уже были установлены инструменты сборки 24. Итак, следующие шаги, упомянутые Фейязом ниже. Это установка Android 7.0 (API 24) и работает. Поэтому я считаю, что для последней версии Cordova более 6 требуется API 24 с инструментом сборки 24 или более поздней версии. Но я не нашел на их сайте документации по этому поводу.
BruS 07

в MacOS и Linux менеджер SDK находится по адресу $ ANDROID_HOME / tools / android
Тони Лейдиг

7

У меня был Android SDK, установив Android Studio, и я тоже получил эту ошибку. В руководстве пользователя есть простое решение .

  1. На машине с установленной Android Studio щелкните Tools > Android > SDK Manager. Обратите внимание на расположение Android SDK в верхней части окна .

  2. Перейдите в этот каталог и найдите в нем licenses/каталог.

    (Если вы не видите licenses/каталог, вернитесь в Android Studio и обновите инструменты SDK, убедившись, что принимаете лицензионные соглашения. Когда вы вернетесь в домашний каталог Android SDK, вы должны увидеть этот каталог.)

  3. Скопируйте весь licenses/каталог и вставьте его в папку Android SDK home directoryна компьютере, на котором вы хотите создавать свои проекты.


7

Эта ошибка может возникнуть, если система не берет переменную окружения ANDROID_HOME по правильному пути. Убедитесь, что вы установили Android SDK и правильно установили для переменной ANDROID_HOME соответствующий путь, как показано на изображении ниже:

ANDROID_HOME_PATH

Если переменная ANDROID_HOME не определена, система пытается выбрать путь из пути по умолчанию (это может быть не путь, в котором определен Android SDK, что приводит к этой проблеме).



4

Это связано с тем, что по умолчанию на момент написания этой статьи для инструмента Ionic CLI по умолчанию установлено значение

<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/> 

По этой причине он жалуется, что вы не приняли лицензионное соглашение, но на самом деле вы не установили пакеты SDK для этого API. уровня но только приняли лицензию.

Итак, что вам нужно сделать, это либо

  1. Измените целевую версию SDK
  2. Установите последний уровень SDK API из SDK Manager

Изменение версии SDK

Вы можете сделать это вручную и даже проверить это, запустив

ionic cordova platform add android 

файл можно найти при your-awesome-app/config.xml его открытии и добавить эту строку, так как он скрыт, как указано выше

<preference name="android-targetSdkVersion" value="24"/>

Если вы не уверены, какой номер УРОВНЯ API вы нацеливаете, откройте диспетчер SDK и посмотрите уровни API (числа), доступные на вашем компьютере.

Установка последнего пакета SDK

Вы можете добавить текущие пакеты SDK, которые показывает CLI , что в вашем случае это 24

Запуск SDK MANAGERот имени администратора

Запустите диспетчер SDK от имени администратора

Установите пакеты SDK API, на которые вы нацеливаетесь

Вот где написан уровень SDK API

Как я это узнал? Я сделал это сегодня утром, и вот как я решил это, и теперь играю в Sticky Bubble на Android, чтобы немного расслабиться.

Удачного развертывания!


Добавление targetSdkVersionв config.xmlфайл устранило мою проблему. Спасибо :)
B

4

В моем случае (сценарий Dockerfile для создания контейнера CI для Android - https://github.com/menny/docker_android ) мне пришлось проделать следующие шаги:

mkdir ~/.android && touch ~/.android/repositories.cfg
yes | sdkmanager --licenses
sdkmanager "build-tools;26.0.0"
sdkmanager "platform-tools" "tools"
sdkmanager "platforms;android-26" "platforms;android-25" "platforms;android-24"
.....
sdkmanager --update
yes | sdkmanager --licenses

Два примечания:

  1. Пришлось создать пустой repositories.cfgфайл, иначе sdkmanagerумрет.
  2. Пришлось выполнять загрузку / установку пакетов в разных вызовах, так как нет индикации прогресса.

4

Перейдите в C: \ Users {user} \ AppData \ Local \ Android \ sdk \ tools \ bin

затем запустите sdkmanager --licenses

он попросит вас принять все соглашения, которые еще предстоит принять. вам просто нужно набрать «y» и войти.

Решим вопрос


Это также замечательно, если у вас есть сервер сборки, который должен автоматически загружать sdk.
Рул

Я пробовал это и получаю Couldn't load neither find main class com.android.sdklib.tool.SdkManagerCli. Идеи?
PlayHardGoPro

Это может быть полезно stackoverflow.com/questions/40718487/… . вы можете попробовать запустить './SdkManagerCli' внутри папки / sdklib / tools.
Лакшита Руван

4

Я использую Mac, и я решил это с помощью этой команды:

$ which sdkmanager
/usr/local/bin/sdkmanager
$ /usr/local/bin/sdkmanager --licenses
Warning: File /Users/user/.android/repositories.cfg could not be loaded.
6 of 6 SDK package licenses not accepted.
Review licenses that have not been accepted (y/N)? y

Затем у меня был список из 6 лицензий, который нужно было принять, и после этого он был разрешен.


4

Вы также можете пойти по «официальному» пути. Запустите « sdkmanager --licenses » в папке tools / bin установки Android SDK и примите все лицензии. Готово!

c:\android-sdk\tools\bin>sdkmanager --licenses

Для macOS или Linux это та же команда.


3

Мне пришлось обновить android sdk

android update sdk --no-ui

в какой-то момент он попросит у вас лицензионное соглашение, нажмите y. После этого нужно снять угловую площадку.


3
  1. Перейдите в расположение Android SDK

C: \ Users \ имя пользователя \ AppData \ Local \ Android \ SDK \ Tools \ Bin

  1. Команда выполнения sdkmanager --licenses

  2. Принять лицензию на SDK


4
Одна и та же информация уже публиковалась несколько раз. Как ваш лучше существующих ответов?
Стивен Кеннеди

2

Нужна последняя стабильную SDK-платформу . Я установил SDK-Platform из API 25. Это устранило мою проблему.См. Снимок экрана ниже


2

Эта проблема возникает, когда на компьютере уже установлена ​​старая версия SDK Manager, на которой изменен подход к сборке Android, для чего требуется «студия Android». Я столкнулся с этим в Visual Studio, который неоднократно останавливался с сообщением об ошибке «Вы не приняли лицензию для версии 25». Решением для этого является «Установите Android Studio», а затем «перейдите в переменные среды» и установите для ANDROID_HOME значение «C: \ Users \\ AppData \ Local \ Android \ Sdk» (этот путь можно выбрать из Android Studio, меню >> Инструменты >> Диспетчер SDK. Также используйте то же самое в «пути» к переменным среды. Таким образом, новый диспетчер SDK отображается для загрузки в Visual Studio Build for Cordova Application.

Это заняло у меня 2 дня усилий во второй раз

Пожелайте другим не тратить время зря в этом беспорядке.


1

Изменение целевой сборки может работать, как указано здесь

Если вы хотите указать версию SDK, вы можете сделать это, добавив следующую строку в свой config.xml в корне вашего проекта ionic / cordova.

<preference name="android-targetSdkVersion" value="23"/>


1

Надеюсь, это сработает для кого-то там, где
я столкнулся с той же проблемой! У меня было 2 SDK с именами sdk и sdk1. По умолчанию он был связан с sdk, но рабочий был sdk1. Итак, я пошел в Environment Varaible и добавил ANDROID_HOME и путь к sdk1, т.е. в моем случае был C: \ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1 , и это решило мою проблему!


0

Что касается меня, я собирал Ionic с помощью команды «ionic build android», и у меня возникла та же проблема! Решение было просто

  • Для установки необходим sdk
  • Запустить ту же команду в CMD надо от администратора

0

Я только что столкнулся с этой проблемой, и что решило ее для меня в Windows: вы используете командную строку и недавно установили android sdk, вы должны перезапустить командную строку или Power Shell после установки android sdk.


0

Ответ Майка работает, но необходимо поместить сгенерированную лицензию в папку C: \ Users \ user \ AppData \ Local \ Android \ sdk \ licenses.


0

это означает, что версия Cordova для Android SDK не соответствует установленной вами версии. Например, cordova поддерживает Android SDK 24, но у вас нет Android sdk 24. Это может быть наоборот.


0

Это обновит ваш Android SDK и одновременно примет лицензию (например, для Android 25):

sdk обновления android --no-ui --filter build-tools-25.0.0, android-25, extra-android-m2repository


0

Проблема для меня заключалась в том, что моя переменная ANDROID_HOME была установлена ​​на другую установку, о существовании которой я забыл. Если это ваша проблема, удалите старую установку.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.