安卓-Jenkins: 在Jenkins构建服务器上找不到Build Tools版本17.0.0

5

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

无法找到Build Tools版本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?

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

非常感谢您的帮助。


请在您的gradle构建文件中尝试使用buildToolsVersion“18.1.1” - petey
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文件自动安装正确的构建工具。
现在我建议使用android-sdk-manager Gradle插件,它可以自动安装所有Jenkins构建所需的前提条件,包括Android SDK、工具、构建工具、平台、支持库等。
这可以非常容易地集成到您的项目中,并消除了在Jenkins构建机器上保持Android SDK安装最新的需要。

“-u”和“-t”选项分别代表什么意思? - Gabriel Jiva
@GabrielJiva 你可以通过 android update sdk --help 进行查看:-u 在命令行中执行更新而不需要任何 GUI;-t 过滤要安装的软件包。在这种情况下,只会安装 build-tools 组件,而不是所有可用的组件。 - Christopher Orr

0

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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接