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")

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

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