5

我正在尝试使用 Jenkins 上的 Android 模拟器来构建和测试我的项目。但是在运行我的 gradle 任务时出现以下错误;

找不到构建工具修订版 17.0.0

我正在运行的 gradle 任务是;

./gradlew clean connectedCheck

在我的 gradle 构建文件中,我有以下配置

android {
  compileSdkVersion 17
  buildToolsVersion "17.0.0"

  defaultConfig {
    minSdkVersion 7
    targetSdkVersion 17
  }
}

构建服务器是一个无头的 Ubuntu 实例(12 个)。我的第一个想法是我没有安装正确的构建工具,所以我查看了我的 android-sdk/build-tools 目录。我只能看到一个名为 18.1.1 的目录。所以我想如果我更新我的 android sdk 它会下载 17.0.0 版本。所以我运行了以下命令:

android update sdk --no-ui

它似乎下载了很多东西,但再次查看构建工具目录我仍然只看到版本 18.1.1。

所以问题是:

1)我是否正确地假设构建失败是因为我的 android sdk 目录中没有正确的构建工具版本?(/android-sdk/build-tools)

2) 如何更新无头服务器上的构建工具,以便拥有 17.0.0 版本?

如果您需要我提供更多信息,请告诉我。

提前感谢您的帮助。

4

2 回答 2

18

默认情况下,android update sdk(或android list sdk --extended)仅列出不被视为已弃用的包。

由于 Build Tools 17.0.0 是一个比较老的版本,默认不会显示。

使用-a( --all) 标志运行将为您提供旧版本,例如:
android update sdk -u -a -t build-tools-17.0.0


在未来的某个时候,Jenkins 插件应该会根据您的 build.gradle 文件自动为您安装正确的构建工具。


编辑(2015 年 11 月):此功能可能不会添加到 Android Emulator 插件中。

现在我推荐使用android-sdk-manager Gradle 插件,它可以自动安装 Jenkins 构建的所有先决条件,包括 Android SDK、工具、构建工具、平台、支持库等。

这可以很容易地集成到您的项目中,并且无需让您的 Jenkins 构建机器上的 Android SDK 安装保持最新。

于 2013-10-17T15:59:01.000 回答
0

其他方法是使用附加到 Jenkins 的 Android SDK 管理器手动更新缺少的版本(查找配置:ANDROID_SDK,然后在其下访问“tools/android.sh”)

在此处输入图像描述

于 2016-04-20T05:56:26.193 回答