将 Android 依赖项添加到 Docker 构建映像 - Bitbucket 管道 (CI)
Adding Android dependencies to Docker build image - Bitbucket Pipelines (CI)
我在 bitbucket 管道构建期间收到此错误。我缺少 firebase jar 文件。
构建失败错误:
> 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.
环境详情:
Android Studio 项目使用 Gradle
Bitbucket(云)管道 CI
使用 uberdevelopment docker 图片 (https://hub.docker.com/r/uber/android-build-environment/)
我想完成的事情:
在我的 Docker 容器中为我的构建安装 Firebase 和其他未来依赖项,以便 Pipelines 可以构建我的 Android 项目
我目前有:
应用程序在本地构建良好。您需要在 Android studio 中进行构建的机器上安装 Firebase(这是正常的)。然而,所有安装 Firebase 的说明都是针对 Javascript 库或涉及打开 Android Studio 并安装它,这在 docker 容器中是不可能的。
我目前的想法:
复制构建目录中的已编译jar 文件。
即:
app\build\intermediates\exploded-aar\com.google.firebase\firebase-core.0.0\jars\classes.jar
重命名并将其复制到构建预期的预期目录
我宁愿直接从网络资源中获取它并以这种方式复制它,原因有两个:
我不确定那是不是它想要的 jar 文件
如果它确实有效,那它就是作弊,因为我正在从旧版本中获取工件。有点违背 CI 系统的目的。
我想通了。
如果您要导入 google 播放服务和其他 android 服务(在应用计费和其他方面),我制作了一张包含此内容的图片:
docker拉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
我在 bitbucket 管道构建期间收到此错误。我缺少 firebase jar 文件。
构建失败错误:
> 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.
环境详情:
Android Studio 项目使用 Gradle
Bitbucket(云)管道 CI
使用 uberdevelopment docker 图片 (https://hub.docker.com/r/uber/android-build-environment/)
我想完成的事情:
在我的 Docker 容器中为我的构建安装 Firebase 和其他未来依赖项,以便 Pipelines 可以构建我的 Android 项目
我目前有:
应用程序在本地构建良好。您需要在 Android studio 中进行构建的机器上安装 Firebase(这是正常的)。然而,所有安装 Firebase 的说明都是针对 Javascript 库或涉及打开 Android Studio 并安装它,这在 docker 容器中是不可能的。
我目前的想法:
复制构建目录中的已编译jar 文件。
即:
app\build\intermediates\exploded-aar\com.google.firebase\firebase-core.0.0\jars\classes.jar
重命名并将其复制到构建预期的预期目录
我宁愿直接从网络资源中获取它并以这种方式复制它,原因有两个:
我不确定那是不是它想要的 jar 文件
如果它确实有效,那它就是作弊,因为我正在从旧版本中获取工件。有点违背 CI 系统的目的。
我想通了。
如果您要导入 google 播放服务和其他 android 服务(在应用计费和其他方面),我制作了一张包含此内容的图片:
docker拉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