Travis CI android仿真器可以';不能使用avdmanager创建
我想在Travis CI中使用模拟器构建和测试Android应用程序 在本地机器上,我可以使用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
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