Android-Jenkins: не удалось найти Build Tools версии 17.0.0 на сервере сборки Jenkins
Я пытаюсь использовать Android Emulator на Jenkins для сборки и тестирования моего проекта. Но я получаю следующую ошибку при запуске моих задач gradle;
не удалось найти Build Tools revision 17.0.0
Задача Gradle, которую я выполняю,
./gradlew clean connectedCheck
в моем файле сборки Gradle у меня есть следующая конфигурация
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 17
}
}
Сервер сборки - это безголовый экземпляр Ubuntu (что-то 12). Моей первой мыслью было, что у меня не установлены правильные инструменты сборки, поэтому я заглянул в директорию android-sdk / build-tools. Все, что я мог видеть, это каталог 18.1.1. Поэтому я подумал, что если я обновлю свой Android SDK, он загрузит версию 17.0.0. Поэтому я запустил следующую команду:
android update sdk --no-ui
и кажется, что загружается много разных вещей, но, глядя в каталог инструментов сборки снова, я все еще вижу только версию 18.1.1.
Итак, вопросы:
1) Прав ли я, предполагая, что сборка не удалась, потому что у меня нет правильной версии инструментов сборки в моей директории Android SDK? (/ Android-SDK / встроенные инструменты)
2) Как мне обновить инструменты сборки на автономном сервере, чтобы у меня была версия 17.0.0?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Заранее спасибо за вашу помощь.
2 ответа
По умолчанию, android update sdk
(или же android list sdk --extended
) только перечисляет пакеты, которые не считаются устаревшими.
Поскольку Build Tools 17.0.0 является сравнительно старой версией, она не будет отображаться по умолчанию.
Бег с -a
(--all
) flag получит более старые версии, например:android update sdk -u -a -t build-tools-17.0.0
В какой-то момент в будущем плагин Jenkins должен автоматически установить нужные вам инструменты сборки, основанные на вашем файле build.gradle.
Изменить (ноябрь 2015 г.): эта функциональность, вероятно, не будет добавлена в плагин эмулятора Android.
В настоящее время я бы рекомендовал использовать плагин Gradle для android-sdk-manager, который автоматизирует установку всех необходимых компонентов для сборки Jenkins, включая Android SDK, инструменты, инструменты сборки, платформы, библиотеки поддержки и т. Д.
Это может быть очень легко интегрировано в ваш проект и избавляет от необходимости поддерживать Android SDK на ваших сборочных машинах в актуальном состоянии.
Другой способ сделать это - вручную обновить отсутствующую версию с помощью Android SDK Manager, подключенного к Jenkins (найдите Configuration: ANDROID_SDK, затем под ним откройте "tools/android.sh")