Я хочу настроить среду разработки Android из командной строки и столкнуться со следующей проблемой:
wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz
после распаковки файла запустите
tools/android update sdk --no-ui
Тем не менее, он работает слишком медленно
Fetching https://dl-ssl.google.com/android/repository/addons_list-2.xml
В результате в папке build-tools ничего нет, а я хочу aapt и apkbuilder, так как я хочу собрать apk из командной строки без ant.
android
sdk
android-build
aapt
build-tools
Чжэнго Ян
источник
источник
--all
вариант в официальных советах . Спасибо.echo "yes"
можно сократить доecho "y"
, но это все равно не работает во всех случаях. В некоторых случаях вы можете получить более одного лицензионного приглашения в зависимости от фильтра и конкретных пакетов.echo "y"
будет отвечать только на первый запрос, но не на остальные. Я пытаюсь заставить его работать сyes
командой, но пока безуспешно.Как упоминалось в других ответах, вы можете использовать
--filter
опцию для ограничения установленных пакетов:android update sdk --filter ...
Другие ответы не упоминают, что вы можете использовать постоянные строковые идентификаторы вместо индексов (которые будут меняться) для параметров фильтра. Это полезно для автоматической установки или установки по сценарию. Человек для
--filter
варианта:android list sdk --all --extended
:Затем вы можете использовать строковые идентификаторы в качестве параметров фильтра, чтобы точно указать версии, которые вы хотите:
android update sdk --filter tools,platform-tools,build-tools-19.0.3
и т.дисточник
--extended
опцию, проясняющую, что устанавливать для скриптов CI.android update
также потребуется--all
опция, в противном случае отображается справка по использованию. Например:android update sdk --no-ui --all --filter build-tools-21.1.0
(и +1 для--extended
опции, которая позволяет вам видеть псевдонимы какbuild-tools-21.1.0
)--filter
и--extended
вариантов?--extended
опцию, чтобы я мог написать скрипт и использовать его на моем Continuous Integration Server, где он мог бы обновить сами ресурсы sdk. Хороший совет!Android SDK Tools
Пакет версии 25.2.3 (и выше) содержит новый инструмент - sdkmanager, который упрощает эту задачу установки инструментов сборки из командной строки.Он находится в
android_sdk/tools/bin
папке.Использование (из документации ):
Пример использования (на моем Mac):
Вы также можете указать различные параметры , например, чтобы заставить все соединения использовать HTTP (
--no_https
), или чтобы использовать прокси-сервер (--proxy_host=address
и--proxy_port=port
).Чтобы проверить доступные параметры, используйте
--help
флаг. На моей машине (Mac) вывод выглядит следующим образом:источник
Warning: Unknown argument --package_file
?--package_file=packages.txt
.Инструменты сборки ADB не будут загружаться автоматически, по команде Android Update SDK --no-ui
Итак, для установки типа Buil-Tool (в консоли):
Запомните номер, который указан перед элементом, и выполните следующее:
Команды должны быть набраны в / YourFolder / android-sdk-linux / tools
Также для удаленной папки (например, сервер, открытый с помощью ssh) введите:
Для простого списка пакетов ADB введите в терминале:
для установки всех пакетов:
Или с фильтрами (запятая является разделителем):
источник
Отличным источником информации, с которой я столкнулся, пытаясь установить все компоненты Android SDK из командной строки, был этот Dockerfile. Внутри Dockerfile вы можете видеть, что автор выполняет установку одной команды
platform tools
иbuild tools
без какого-либо другого взаимодействия. В случае, если OP выдвинул, команда будет адаптирована к:источник
--all
флагаУ меня было чертовски много времени на установку зависимостей android sdk через командную строку, и, поскольку документация, которая поставляется вместе с инструментами и онлайн, крайне не хватает, я решил опубликовать то, что обнаружил здесь.
Я работаю с
android sdk r24.4.1
дляlinux
. Есть две команды, которые вы можете запустить, чтобы вывести список доступных пакетов:android list sdk
и тем более исчерпывающим
android list sdk --all
Номера пакетов для конкретных пакетов отличаются для каждой команды выше! Например, первый перечисляет пакет
API 23.1 revision 3
как пакет,#3
а второй перечисляет его как#29
.Теперь есть два способа установки с помощью команды android.
tools/android update sdk --no-ui --filter <package number>
и
tools/android update sdk -u -a -t <package number>
Учитывая, что каждая команда установки может принять пакет # в качестве параметра, какой номер пакета вы используете? После долгих поисков в Интернете, проб и ошибок я обнаружил, что
android update sdk --no-ui --filter
использует номера пакетов изandroid list sdk
и
android update sdk -u -a -t
использует номера пакетов изandroid list sdk --all
Другими словами - для установки
API 23.1 revision 3
вы можете сделать либо:android update sdk --no-ui --filter 3
или
android update sdk -u -a -t 29
Сумасшедший, но это работает.
источник
-a
это короткая версия--all
, поэтому он использует этот номер пакета. (-u
коротко--no-ui
и-t
коротко--filter
.)usage()
текст в актуальном состоянии.Большинство ответов, кажется, игнорируют тот факт, что вам может потребоваться запустить обновление в автономной среде без прав суперпользователя, а это означает, что сценарий должен
y/n
автоматически отвечать на все запросы лицензии.Вот пример, который делает трюк.
Независимо от того, сколько запросов вы получите, на все они будут даны ответы. Этот
while/sleep
цикл выглядит как симуляция команды yes , и на самом деле это почти так . Проблема вyes
том, что он заполняет стандартный вывод,'y'
и практически нет задержки между отправкой этих символов и версией, с которой мне приходилось иметь дело, не было никакой опции тайм-аута. Это «загрязнит» стандартный вывод, и скрипт не сможет жаловаться на неправильный ввод. Решение состоит в том, чтобы поместить задержку между отправкой'y'
на стандартный вывод, и это именно то, чтоwhile/sleep
делает комбо.expect
по умолчанию недоступен в некоторых дистрибутивах Linux, и у меня не было возможности установить его как часть моих скриптов CI, поэтому пришлось использовать самое универсальное решение, и ничто не может быть более универсальным, чем простой скрипт bash, верно?Фактически, я написал об этом в блоге ( NSBogan ), проверьте это для более подробной информации здесь, если вы заинтересованы.
источник
Если вы
sdkmanager
установили (я использую MAC)запустить,
sdkmanager --list
чтобы увидеть список доступных пакетов.Если вы хотите установить инструменты сборки, скопируйте предпочитаемую версию из списка доступных пакетов.
Чтобы установить предпочитаемую версию, запустите
источник
Да, у меня была такая же проблема. Некоторые из файлов загружаются очень медленно (или, по крайней мере, они были в последние пару дней). Если вы хотите скачать все, что не так много, вы можете с этим поделать.
Вы позволили ему бежать до конца?
Одна вещь, которую вы можете сделать, это отфильтровать пакеты, которые загружаются с помощью
-t
коммутатора.Например:
Когда я попробовал это на днях, я установил версию 18.0.0 инструментов сборки. По какой-то причине последняя версия 18.0.1 не включена в этот фильтр, и единственный способ получить ее - это установить все вместе с
--all
коммутатором.источник
Я предпочитаю ставить скрипт, который устанавливает мои зависимости
Что-то вроде:
https://github.com/caipivara/android-scripts/blob/master/install-android-dependencies.sh
источник
У меня просто была эта проблема, поэтому я наконец написал грязное решение на 1 строку, прочитав и проанализировав список доступных инструментов:
источник
Вдохновленный ответами @ i4niac & @ Aurélien Lambert, это то, что я придумал
объяснение
android list sdk --all
команды (Игнорирование устаревших пакетов).источник
Загрузите Android SDK с developer.android.com (в настоящее время это файл объемом 149 Мб для ОС Windows). Стоит отметить, что android удалил графический интерфейс sdkmanager, но имеет версию sdkmanager для командной строки в папке bin, которая находится внутри папки tools.
sdkmanager
нажмите Enter.sdkmanager
(пробел), двойной дефис (--
), список типовsdkmanager --list
(в этом списке перечислены все пакеты в менеджере SDK).Для получения дополнительной информации следуйте официальному документу здесь.
Надеюсь, это поможет. :)
источник
Если вам не нужна Android Studio, вы можете загрузить основные инструменты командной строки Android с developer.android.com в разделе Только инструменты командной строки .
от CLI должно быть что-то вроде:
или
После этого просто распакуйте архив в целевую папку
И теперь мы можем установить все, что вам нужно ...
Вы можете получить полный список пакетов, используя команду
./tools/bin/sdkmanager --list
Некоторые пакеты требуют принятия лицензионного соглашения. вы можете принять его в интерактивном режиме или просто передать «y» потоку ввода, например, так (два соглашения на всякий случай):
И, конечно же, для вашего удобства вы можете экспортировать такие переменные, как ANDROID_HOME или ANDROID_SDK_ROOT (в том числе сделать это в ~ / .profile или ~ / .bash_profile) или исправить PATH. переменную - все это на ваше усмотрение.
Пример сценария:
Требования: curl (или wget) и распаковать
Исправление проблем:
если вы видите
Warning: Could not create settings
, вам нужно иметьtools
каталог внутриcmdline-tools
каталога внутри ANDROID_HOME (создайте его, если необходимо, с этим точным именем), см. Инструменты командной строки Android, sdkmanager всегда показывает: Предупреждение: не удалось создать настройкиисточник
Инструменты сборки не могут быть загружены автоматически по умолчанию, как сказал Нейт в https://stackoverflow.com/a/19416222/1104031 сообщении.
Но я написал небольшой инструмент, который сделает все для вас
Я использовал инструмент «ожидается» в качестве DanB в сообщении https://stackoverflow.com/a/17863931/1104031 . Вам нужно только Android-SDK и
python27
,expect
.Этот скрипт установит все инструменты сборки, все sdks и все, что вам нужно для автоматической сборки:
источник
echo "yes" | ./android update sdk --no-https --no-ui --filter 1,6
?Как указано в других ответах, для инструментов сборки требуется установить
--all
флаг. Вам также лучше использовать-t
флаг фильтра, чтобы избежать установки ВСЕХ пакетов, но нет способа отфильтровать все инструменты сборки.В трекере ошибок AOSP уже есть запросы на добавление этих двух точек. Не стесняйтесь голосовать за них, это может заставить их когда-нибудь произойти:
источник
Я попробовал это для обновления всех, и это сработало!
источник
Пытаться
1. Перечислите все пакеты
2. Установите пакеты, используя следующую команду
источник
Android обновление SDK
Эта команда обновит и установит все последние версии инструментов SDK, инструментов сборки, инструментов платформы SDK.
Это работа для меня.
источник