Travis CI android仿真器可以';不能使用avdmanager创建

Travis CI android仿真器可以';不能使用avdmanager创建,android,android-emulator,travis-ci,android-testing,Android,Android Emulator,Travis Ci,Android Testing,我想在Travis CI中使用模拟器构建和测试Android应用程序 在本地机器上,我可以使用android和avdmanager工具创建emulator,例如: echo no | android create avd --force --name test01 --package 'system-images;android-27;google_apis_playstore;x86' echo no | avdmanager create avd --force --name test02

我想在Travis CI中使用模拟器构建和测试Android应用程序

在本地机器上,我可以使用
android
avdmanager
工具创建emulator,例如:

echo no | android create avd --force --name test01 --package 'system-images;android-27;google_apis_playstore;x86'

echo no | avdmanager create avd --force --name test02 --package 'system-images;android-27;google_apis_playstore;x86' 
但在Travis上,$ANDROID_HOME/tools/bin中没有
avdmanager

当我尝试使用
android
工具创建emulator时(这是不可取的,因为它已被弃用),结果发现它与安装在mac上的版本不同,需要不同的参数

My
.travis.yml
文件(为清晰起见,已删除变量和构建步骤):


那么,您能建议我如何在Travis CI中创建Android emulator吗

在尝试了官方方法之后,我发现在travis上启动一个模拟器的最简单方法至少在
travis.xml

before_install:
  # Install SDK license so Android Gradle plugin can install deps.
  - mkdir "$ANDROID_HOME/licenses" || true
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license"
  # Install the rest of tools (e.g. avdmanager)
  - sdkmanager tools
  # Install the system image.
  - sdkmanager "system-images;android-24;default;armeabi-v7a"
  # Create and start emulator for the script. Meant to race the install task.
  - echo no | avdmanager create avd --force -n emulatorApi24 -k "system-images;android-24;default;armeabi-v7a"
  - $ANDROID_HOME/emulator/emulator -avd emulatorApi24 -no-audio -no-window &

before_script:
  - android-wait-for-emulator
  # Disable animations
  - adb shell settings put global window_animation_scale 0 &
  - adb shell settings put global transition_animation_scale 0 &
  - adb shell settings put global animator_duration_scale 0 &
  - adb shell input keyevent 82 &

script: ./gradlew connectedAndroidTest # Run emulator tests
现在我的travis构建需要20分钟:D

作为参考,检查工作示例的好地方是

before_install:
  # Install SDK license so Android Gradle plugin can install deps.
  - mkdir "$ANDROID_HOME/licenses" || true
  - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> "$ANDROID_HOME/licenses/android-sdk-license"
  # Install the rest of tools (e.g. avdmanager)
  - sdkmanager tools
  # Install the system image.
  - sdkmanager "system-images;android-24;default;armeabi-v7a"
  # Create and start emulator for the script. Meant to race the install task.
  - echo no | avdmanager create avd --force -n emulatorApi24 -k "system-images;android-24;default;armeabi-v7a"
  - $ANDROID_HOME/emulator/emulator -avd emulatorApi24 -no-audio -no-window &

before_script:
  - android-wait-for-emulator
  # Disable animations
  - adb shell settings put global window_animation_scale 0 &
  - adb shell settings put global transition_animation_scale 0 &
  - adb shell settings put global animator_duration_scale 0 &
  - adb shell input keyevent 82 &

script: ./gradlew connectedAndroidTest # Run emulator tests