Travis CI无法为Android SDK创建目录

时间:2014-10-15 08:58:12

标签: android travis-ci

我为Travis CI设置了环境并将.travis.yml添加到我的源文件夹中:

language : android

jdk: oraclejdk7

android:
 components:
    - build-tools-19.1.0

    # The SDK version used to compile the project
    - android-19

    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - addon-google_apis-google-19




before_install:
  - chmod +x gradlew

install:
  - true

script: ./gradlew assembleDebug

Travis总是下载构建工具等,但是在重命名目录时失败了。输出每次都相同:

  

安装档案:

     

准备安装档案

     

下载SDK平台Android 4.4.2,API 19,修订版4

     

安装SDK平台Android 4.4.2,API 19,修订版4

     

无法将目录/ usr / local / android-sdk / platforms / android-19重命名为/usr/local/android->sdk/temp/PlatformPackage.old01。

     

无法创建目录/ usr / local / android-sdk / platforms / android-19

     

完成。什么都没安装。

我知道Android的Travis CI是测试版。

修改

我可能知道这个问题。问题是因为已经安装了SDK 19,而且我只需要安装构建工具。

1 个答案:

答案 0 :(得分:2)

更新回复:VM图像已经包含固定的android-wait-for-emulator脚本和android SDK工具版本24.0.0,默认情况下解决问题。

Build Environment Updates - 2014-12-09

过时的回复:

你是对的。如果您使用基于容器的基础架构并且需要更新到最新工具,则可以在此处找到一个未解决的问题: https://github.com/travis-ci/travis-ci/issues/2848

默认的android-sdk文件夹位于/usr/local/android-sdk,sudo已被禁用。他们正在开发解决此问题的Docker / BTRFS实现。

Ayufan在那里解释说Docker默认使用AUFS,它不支持所有可能的文件系统操作。我不知道这个具体问题的细节。

如果您需要在修复文件系统/权限问题之前升级到最新工具版本(23.0.5,android-21要求),请检查我在同一链接上的最后一个响应。

您可以使用下一个解决方法将android-sdk文件夹复制到$TRAVIS_BUILD_DIR位置内的文件夹:

env:
  global:
    - ANDROID_HOME=${TRAVIS_BUILD_DIR}/android-sdk
    - PATH=${ANDROID_HOME}/:${ANDROID_HOME}/tools/:${ANDROID_HOME}/platform-tools/:${PATH}

before_install:
  - cp -R /usr/local/android-sdk-23.0.2 ./android-sdk

http://docs.travis-ci.com/user/ci-environment/#Environment-variables

因此,您保留已下载的组件,并可以移动tools脚本和sdkmanager所在的android文件夹。

其他选项是将tools文件夹移动到temp文件夹并更新: https://stackoverflow.com/a/8839359/1009132

或干净的手动安装最新工具,使用wget等在同一级别为platformsadd-ons创建两个空文件夹。工具链接:

https://dl-ssl.google.com/android/repository/tools_r23.0.5-linux.zip

我知道您目前不需要此响应,但可能人们需要尽快安装android-21并找到此问题。