添加Android依赖关系到Docker构build镜像 – Bitbucketpipe道(CI)

在bitbucketpipe道构build期间,我收到了这个错误。 我错过了firebase jar文件。

构build失败错误:

> 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. 

关于环境的细节:

  • 使用Gradle的Android Studio项目

  • Bitbucket(云)pipe道CI

  • 使用uberdevelopment docker镜像( https://hub.docker.com/r/uber/android-build-environment/ )

我想完成什么:

要在我的Docker容器中安装Firebase和其他未来的依赖关系,以便Pipelines可以构build我的Android项目

我到目前为止:

该应用程序在本地生成良好。 您需要在Android Studio中安装Firebase(这是正常的)。 不过,所有关于安装Firebase的说明都是针对Javascript库的,或者涉及到打开Android Studio并安装它,这在Docker容器中是不可能的。

我目前的想法:

将编译的jar文件复制到构build目录中。

即:

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

重命名它并将其复制到构build期望的预期目录

我宁愿直接从networking资源中获取它,然后复制它,原因有两个:

  1. 我不确定这是否是它想要的jar文件

  2. 如果它确实有效,那么我就是从旧版本中抓取一个神器。 那种打败CI系统的目的。

我想到了。

如果您正在寻找导入谷歌播放服务和其他Android服务(在应用程序帐单等),我做了一个形象,涵盖了这一点:

docker拉epro95z28 / androidservices

它基于这里的超级开发图像: https : //hub.docker.com/r/uber/android-build-environment/ )

这是我在超级图像中改变的行,以包括其他库

 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