我们正在安装android sdk以及在docker容器中构建我们的应用程序所需的所有软件包。
然而,有一个细节一直困扰着我的版本。
查看下面所有sdk经理可用的包(列表已缩短)
$ sdkmanager --channel=3 --list
Installed packages:
Path | Version | Description | Location
------- | ------- | ------- | -------
...
build-tools;25.0.1 | 25.0.1 | Android SDK Build-Tools 25.0.1 | build-tools/25.0.1/
build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2 | build-tools/25.0.2/
build-tools;25.0.3 | 25.0.3 | Android SDK Build-Tools 25.0.3 | build-tools/25.0.3/
build-tools;26.0.0 | 26.0.0 | Android SDK Build-Tools 26 | build-tools/26.0.0/
...
platform-tools | 26.0.0 | Android SDK Platform-Tools | platform-tools/
platforms;android-17 | 3 | Android SDK Platform 17, rev 3 | platforms/android-17/
platforms;android-18 | 3 | Android SDK Platform 18, rev 3 | platforms/android-18/
platforms;android-19 | 4 | Android SDK Platform 19, rev 4 | platforms/android-19/
platforms;android-20 | 2 | Android SDK Platform 20, rev 2 | platforms/android-20/
platforms;android-21 | 2 | Android SDK Platform 21, rev 2 | platforms/android-21/
platforms;android-22 | 2 | Android SDK Platform 22, rev 2 | platforms/android-22/
platforms;android-23 | 3 | Android SDK Platform 23, rev 3 | platforms/android-23/
platforms;android-24 | 2 | Android SDK Platform 24, rev 2 | platforms/android-24/
platforms;android-25 | 3 | Android SDK Platform 25 | platforms/android-25/
platforms;android-26 | 1 | Android SDK Platform 26 | platforms/android-26/
有些软件包包含Path
上的版本,很明显两个不同的图像构建将具有完全相同的软件包。如果您想要更新它,那么您必须将安装命令从build-tools;25.0.3
更改为build-tools;26.0.0
。
但是,有些软件包没有Path
中的版本。
假设我们有一个包含platforms;android-25
的版本,当前的泊坞窗图片可能会安装Version 3
(目前最新版本),但下次我们构建图片时可能会有Version 4
,意味着具有相同的依赖关系名称,我们最终得到不同的安装包。我们不会知道这一点,它可能会导致构建问题,因为它们不是确定性的。
虽然这是一个基本示例,但是其他依赖项(例如extras;android;m2repository
或extras;google;m2repository
)会变得更复杂,其中修订可能意味着包含新版本的软件包(firebase for例子)。
换句话说,有没有办法指定我们要安装的软件包的Version
,所以我们总是安装相同的依赖项?
由于
答案 0 :(得分:0)
不幸的是,你不能。唯一的方法是找到所需版本的直接下载链接(并备份!)
例如,platforms-16的当前修订为5,我在这里http://venomvendor.blogspot.com/2012/07/download-android-41-jelly-bean-api-16.html找到了较早的修订