Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么Travis CI每次构建时都会下载所有内容?_Android_Travis Ci - Fatal编程技术网

Android 为什么Travis CI每次构建时都会下载所有内容?

Android 为什么Travis CI每次构建时都会下载所有内容?,android,travis-ci,Android,Travis Ci,我发现每次Travis CI构建项目时,它都必须再次下载所有SDK包,如平台工具、支持库、当前SDK等 有没有可能避免它,让特拉维斯重新使用它第一次下载的东西 我可能在.travis.yml文件中犯了一些错误,这是它的副本 language: android android: components: # Uncomment the lines below if you want to # use the latest revision of Android SDK Tools

我发现每次Travis CI构建项目时,它都必须再次下载所有SDK包,如平台工具、支持库、当前SDK等

有没有可能避免它,让特拉维斯重新使用它第一次下载的东西

我可能在.travis.yml文件中犯了一些错误,这是它的副本

language: android
android:
  components:
    # Uncomment the lines below if you want to
    # use the latest revision of Android SDK Tools
    - platform-tools
    - tools

    # The BuildTools version used by your project
    - build-tools-23.0.2

    # The SDK version used to compile your project
    - android-23

    # Additional components
    - extra-android-support
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - addon-google_apis-google-19

    # Specify at least one system image,
    # if you need to run emulator(s) during your tests
    # - sys-img-armeabi-v7a-android-19
    # - sys-img-x86-android-17

script:
  - ./gradlew check
  - ./gradlew test --continue
  # - ./gradlew build connectedCheck
为什么Travis CI每次构建时都会下载所有内容

我们谈到这一点,Travis ci从S3下载缓存,因此缓存大文件(如Android SDK)的速度没有显著提高

如何在Travis ci缓存中包含Android SDK?(不推荐)

相关位在这里,您可以将任何您喜欢并知道其路径的文件添加到缓存中:

cache:
  directories:
    - ${TRAVIS_BUILD_DIR}/gradle/caches/
    - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/
    - ${TRAVIS_BUILD_DIR}/android-sdk/extras/ # please don't include sys-images
我以前做过,你可以看到代码:

使用
ls
确认SDK路径下次未更改


目前没有必要移动SDK,您需要更新其他内容,可能在
平台工具
之后添加另一个
工具
,此代码已经过时。

我也有同样的问题。我想这是因为android支持是测试版。这个问题已经发布在这里了,谢谢你的回答。你能再解释一下吗?因此,从您的代码来看,
/usr/local/android-sdk-24.0.2
或指向sdk的绝对路径始终存在。您正在将表单复制到travis ci寻找的SDK位置?但是,您说现在没有必要复制SDK。那么,我们如何防止travis ci再次下载SDK?我还读到,每次它启动一个新的docker容器时,都需要重新下载所有内容。有办法解决吗?谢谢忽略这个过时的示例,相关的位在这里,您可以向缓存中添加任何您喜欢的文件并知道其路径:
缓存:
目录:
-/usr/local/android-sdk-24.0.2类似,但不建议这样做,因为将系统映像添加到缓存中太过分了。
language: android
jdk: oraclejdk8
env:
  global:
    - GRADLE_USER_HOME=${TRAVIS_BUILD_DIR}/gradle
    - ANDROID_HOME=${TRAVIS_BUILD_DIR}/android-sdk
    - SDK=${TRAVIS_BUILD_DIR}/android-sdk
    - PATH=${GRADLE_USER_HOME}/bin/:${SDK}/:${SDK}/tools/:${SDK}/platform-tools/:${PATH}
before_install:
  - export OLD_SDK=/usr/local/android-sdk-24.0.2;
                                           mkdir -p ${SDK};
                                           cp -u -R ${OLD_SDK}/platforms ${SDK}/platforms;
                                           cp -u -R ${OLD_SDK}/system-images ${SDK}/system-images;
                                           cp -u -R ${OLD_SDK}/tools ${SDK}/tools

cache:
  apt: true
  directories:
    - ${TRAVIS_BUILD_DIR}/gradle/caches/
    - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/
    - ${TRAVIS_BUILD_DIR}/android-sdk/extras/
android:
  components:
     # Update Android SDK Tools
    - tools
    - platform-tools
    - build-tools-23.0.2
    - android-23    
    - add-on
    - extra

script:
   - ./gradlew check