无法在构建计算机上更新android sdk

时间:2014-07-09 15:21:18

标签: android jenkins

在Jenkins运行的CI构建中,我有一个下载sdk的步骤,如果它不存在于机器上,那么它将下载并更新所需的一切。我的构建工作在我的macbook上,并在一个新鲜的流浪汉ubuntu机器上,但是当我在Jenkins主机上运行时,它总是失败。

我在shell脚本中有这个,它应该下载我需要的所有必要的android工具。

expect -c 'set timeout -1;
spawn android update sdk --all --filter build-tools-20.0.0,platform-tools,android-20,extra-android-support,extra-google-m2repository,extra-android-m2repository --no-ui;
expect {
    "Do you accept the license" {
        exp_send "y\r"
        exp_continue
    }
    eof
}

catch wait result
exit [lindex \$result 3]'

它只是一个自动接受许可证的expect脚本。有问题的一行是

android update sdk --all --filter build-tools-20.0.0,platform-tools,android-20,extra-android-support,extra-google-m2repository,extra-android-m2repository --no-ui

构建机器上的输出是......

Error: Ignoring unknown package filter 'build-tools-20.0.0'
Error: Ignoring unknown package filter 'android-20'
Error: Ignoring unknown package filter 'extra-google-m2repository'
Error: Ignoring unknown package filter 'extra-android-m2repository'

这些ID存在于sdk中,所以我有点迷失,有什么想法?

1 个答案:

答案 0 :(得分:3)

来自Xavier DucrochetGoogle+ Post的评论。

  

旧版本(< 23)为组件列表使用不同的XML架构,因此命中不同的URL以获取组件列表。此列表不包含API 20.

     

将工具升级到23,然后再次运行脚本它应该可以工作。

我只需要将工具升级到版本23,一切都按预期工作。