sdkmanager指定包的修订版

时间:2017-07-04 08:35:43

标签: android android-sdk-tools android-sdk-manager

我们正在安装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;m2repositoryextras;google;m2repository)会变得更复杂,其中修订可能意味着包含新版本的软件包(firebase for例子)。

换句话说,有没有办法指定我们要安装的软件包的Version,所以我们总是安装相同的依赖项?

由于

1 个答案:

答案 0 :(得分:0)

不幸的是,你不能。唯一的方法是找到所需版本的直接下载链接(并备份!)

例如,platforms-16的当前修订为5,我在这里http://venomvendor.blogspot.com/2012/07/download-android-41-jelly-bean-api-16.html找到了较早的修订