使用模拟器实现Android SDK 25的Travis-CI

时间:2017-02-22 08:07:49

标签: android android-emulator travis-ci

我需要帮助在我的android存储库中实现Travis-CI。

我的项目使用SDK 25编译,但向下兼容版本21。

如何更改我的.travis.yml以运行与该SDK版本兼容的Android模拟器?

.travis.yml:

language: android
jdk: oraclejdk8
android:
  components:
    - tools # to get the new `repository-11.xml`
    - tools # see https://github.com/travis-ci/travis-ci/issues/6040#issuecomment-219367943)
    - platform-tools
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - addon-google_apis-google-19
    - build-tools-25.0.0
    - android-25

  #  - sys-img-armeabi-v7a-android-22

before_script:
    #- android update sdk -a --no-ui --filter sys-img-armeabi-v7a-android-25,sys-img-x86_64-android-25
    # - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
    # - emulator -avd test -no-skin -no-audio -no-window &
    # - android-wait-for-emulator
    # - adb shell input keyevent 82 &

script:
    # - ./gradlew build connectedCheck

现在它退出时使用"没有连接的设备" -Error,这是有道理的,因为没有运行的模拟器。但是当我尝试使用android-22模拟器时,它也崩溃了,例如"没有安装Android SDK 22"

修改 travis.yml中的注释行无效,这就是为什么它们被注释掉了。

2 个答案:

答案 0 :(得分:1)

对于我们项目中的这些属性:

compileSdkVersion 25
minSdkVersion 21
targetSdkVersion 25

我们使用这样的模拟器:

echo no | android create avd --force -n test -t android-21 --abi armeabi-v7a --skin 480x800

除此之外,travis.yml不需要特殊的代码:

- tools
- platform-tools
- build-tools-25.0.1
- android-25
- extra-android-m2repository

这是使用min SDK 19的存储库: https://github.com/elpassion/el-peon-android

答案 1 :(得分:1)

我只回答了android-22的部分,因为我没有在最新版本的Android上使用Travis-ci:

language: android
jdk: oraclejdk8
android:
  components:
    - tools # to get the new `repository-11.xml`
    - tools # see https://github.com/travis-ci/travis-ci/issues/6040#issuecomment-219367943)
    - platform-tools
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - build-tools-25.0.0
    - android-25
    - android-22 # Android platform used by your alternative emulator
    - sys-img-armeabi-v7a-android-22

before_script:
    - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
    - emulator -avd test -no-skin -no-audio -no-window &
    - android-wait-for-emulator
    - adb shell input keyevent 82 &

script:
    - ./gradlew build connectedCheck