【问题标题】:sdkmanager specifying revision of packagessdkmanager 指定软件包的修订版
【发布时间】:2017-12-07 15:09:30
【问题描述】:

我们正在安装 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 的构建,当前的 docker 镜像可能会安装 Version 3(目前最新),但是下次我们构建镜像时可能会有一个 Version 4 可用,这意味着具有相同的依赖关系名称我们最终会得到不同的安装包。我们不会知道这一点,它可能会导致构建问题,因为它们不是确定性的。

虽然这是一个基本示例,但其他依赖项(例如 extras;android;m2repositoryextras;google;m2repository)会使事情变得更加复杂,其中修订可能意味着包含新版本的软件包(例如 firebase)。

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

谢谢

【问题讨论】:

  • 任何对包版本有严格要求的人都应该运行他们自己的本地仓库。如果您不想托管所有二进制包文件 - 您可以使用您需要的包版本托管您自己的自定义 repository.xml,并且仍然使用 google 的 repo 来获取包文件。

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


【解决方案1】:

很遗憾,你不能。唯一的方法是找到您需要的版本的直接下载链接(并备份它!)

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

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 2013-07-16
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    • 2010-10-18
    相关资源
    最近更新 更多