Добавление зависимостей Android в образ сборки Docker - Bitbucket Pipelines (CI)

Я получил эту ошибку во время сборки конвейера битбакета. Я скучаю по фляге с огневой базой.

Ошибка сборки:

> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
   > Could not find com.google.firebase:firebase-core:10.0.0.
     Searched in the following locations:
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-core/10.0.0/firebase-core-10.0.0.pom
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-core/10.0.0/firebase-core-10.0.0.jar
         file:/opt/atlassian/pipelines/agent/build/sdk-manager/com/google/firebase/firebase-core/10.0.0/firebase-core-10.0.0.jar
     Required by:
         project :app
   > Could not find com.google.firebase:firebase-ads:10.0.0.
     Searched in the following locations:
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-ads/10.0.0/firebase-ads-10.0.0.pom
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-ads/10.0.0/firebase-ads-10.0.0.jar
         file:/opt/atlassian/pipelines/agent/build/sdk-manager/com/google/firebase/firebase-ads/10.0.0/firebase-ads-10.0.0.jar
     Required by:
         project :app
   > Could not find com.google.firebase:firebase-messaging:10.0.0.
     Searched in the following locations:
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-messaging/10.0.0/firebase-messaging-10.0.0.pom
         file:/usr/local/android-sdk/extras/android/m2repository/com/google/firebase/firebase-messaging/10.0.0/firebase-messaging-10.0.0.jar
         file:/opt/atlassian/pipelines/agent/build/sdk-manager/com/google/firebase/firebase-messaging/10.0.0/firebase-messaging-10.0.0.jar
     Required by:
         project :app
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Подробная информация об окружающей среде:

Чего я хочу добиться:

Чтобы установить Firebase и другие будущие зависимости для моей сборки в моем контейнере Docker, чтобы конвейеры могли создавать мой проект Android

Что у меня есть:

Приложение отлично собирается локально. Вам необходимо установить Firebase на машину, на которой выполняется сборка (это нормально) в студии Android. Однако все инструкции по установке Firebase относятся либо к библиотеке Javascript, либо включают открытие Android Studio и ее установку, что невозможно в контейнере докеров.

Моя текущая идея:

Скопируйте скомпилированные файлы jar в каталоги сборки.

ie:

app\build\intermediates\exploded-aar\com.google.firebase\firebase-core\10.0.0\jars\classes.jar

Переименуйте его и скопируйте в ожидаемый каталог, который ожидает сборка.

Я бы предпочел получить его прямо с веб-ресурса и скопировать таким образом по двум причинам:

  1. Я не уверен, нужен ли ему именно тот jar-файл

  2. Если это сработает, это обман, поскольку я беру артефакт из старой сборки. Вид поражений цель системы CI.


person Evan Parsons    schedule 18.05.2017    source источник


Ответы (1)


Я понял.

Если вы хотите импортировать сервисы Google Play и другие сервисы Android (в биллинге приложений и др.), Я сделал изображение, которое охватывает это:

docker pull epro95z28 / androidservices

Он основан на образе uber dev, который можно найти здесь: https://hub.docker.com/r/uber/android-build-environment/)

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

ENV ANDROID_COMPONENTS platform-tools,android-23,android-24,build-tools-23.0.2,build-tools-24.0.0, extra-android-m2repository, extra-android-support, extra-google-admob_ads_sdk, extra-google-analytics_sdk_v2, extra-google-google_play_services_froyo, extra-google-google_play_services, extra-google-m2repository, extra-google-play_apk_expansion, extra-google-play_billing, extra-google-play_licensing, extra-google-webdriver
person Evan Parsons    schedule 20.05.2017