Android Circle.ci 上 Google 播放服务的 AVD
Android AVD with Google Play Services on Circle.ci
我正在使用 circle.ci 在模拟器上测试我的代码。
我有一些使用 google 中的地图和地点 api 的浓缩咖啡测试。这些测试不适用于 circle.ci
给出的模拟器
所以我尝试自己做,在 circle.yml
machine:
environment:
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:$PATH"
TERM: "dumb"
ADB_INSTALL_TIMEOUT: "10"
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
dependencies:
pre:
- android list targets
- wget "https://services.gradle.org/distributions/gradle-2.9-bin.zip"; unzip gradle-2.9-bin.zip
- android list sdk -a -e
- echo y | android update sdk --no-ui --all --filter build-tools-23.0.2
- echo y | android update sdk --no-ui --all --filter tool,android-22,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,addon-google_apis-google-22
- echo y | android update sdk --no-ui --all --filter sys-img-armeabi-v7a-google_apis-22
test:
override:
- echo no | android create avd -n avd22 -t 12 --abi google_apis/armeabi-v7a
- emulator -avd avd22 -no-audio -no-window:
background: true
parallel: true
可悲的是,即使我 运行 android update sdk --no-ui --all --filter sys-img-armeabi-v7a-google_apis-22
如果我做了 android list target
,我的图像似乎不可用 :
id: 12 or "Google Inc.:Google APIs:22"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 5.1.1 (API level 22)
Libraries:
* com.google.android.media.effects (effects.jar)
Collection of video effects
* com.android.future.usb.accessory (usb.jar)
API for USB Accessories
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
如果有人有解决方案,可以在 circle.ci 上使用带有播放服务的模拟器,那对我来说真的很有用...
经过大量尝试,我终于可以使用此配置文件创建一个带有播放服务的 Android AVD:
machine:
environment:
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:$PATH"
TERM: "dumb"
ADB_INSTALL_TIMEOUT: "10"
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
dependencies:
pre:
- echo y | android update sdk --no-ui --all --filter tools
- echo y | android update sdk --no-ui --all --filter platform-tools
- echo y | android update sdk --no-ui --all --filter extra-android-m2repository
- echo y | android update sdk --no-ui --all --filter extra-android-support
- echo y | android update sdk --no-ui --all --filter extra-google-google_play_services
- echo y | android update sdk --no-ui --all --filter extra-google-m2repository
- echo y | android update sdk --no-ui --all --filter android-22
- echo y | android update sdk --no-ui --all --filter build-tools-23.0.2
- echo y | android update sdk -a -u -t sys-img-armeabi-v7a-google_apis-22
- android list targets
test:
override:
- echo no | android create avd -n custom-android22-googleapis -t "android-22" --abi google_apis/armeabi-v7a
- android list avd
- emulator -avd custom-android22-googleapis -no-audio -no-window:
background: true
parallel: true
# wait for emulator to have booted
- circle-android wait-for-boot
# Sleeping isn't a brilliant fix...
- sleep 30
- fb-adb rcmd screencap -p > $CIRCLE_ARTIFACTS/screen-$(date +"%T").png
- adb shell input keyevent 82
- ./gradlew connectedAndroidTest -PdisablePreDex --console=plain --info
#- fb-adb devices
- fb-adb rcmd screencap -p > $CIRCLE_ARTIFACTS/screen-$(date +"%T").png
我正在使用 circle.ci 在模拟器上测试我的代码。
我有一些使用 google 中的地图和地点 api 的浓缩咖啡测试。这些测试不适用于 circle.ci
给出的模拟器所以我尝试自己做,在 circle.yml
machine:
environment:
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:$PATH"
TERM: "dumb"
ADB_INSTALL_TIMEOUT: "10"
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
dependencies:
pre:
- android list targets
- wget "https://services.gradle.org/distributions/gradle-2.9-bin.zip"; unzip gradle-2.9-bin.zip
- android list sdk -a -e
- echo y | android update sdk --no-ui --all --filter build-tools-23.0.2
- echo y | android update sdk --no-ui --all --filter tool,android-22,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,addon-google_apis-google-22
- echo y | android update sdk --no-ui --all --filter sys-img-armeabi-v7a-google_apis-22
test:
override:
- echo no | android create avd -n avd22 -t 12 --abi google_apis/armeabi-v7a
- emulator -avd avd22 -no-audio -no-window:
background: true
parallel: true
可悲的是,即使我 运行 android update sdk --no-ui --all --filter sys-img-armeabi-v7a-google_apis-22
如果我做了 android list target
,我的图像似乎不可用 :
id: 12 or "Google Inc.:Google APIs:22"
Name: Google APIs
Type: Add-On
Vendor: Google Inc.
Revision: 1
Description: Android + Google APIs
Based on Android 5.1.1 (API level 22)
Libraries:
* com.google.android.media.effects (effects.jar)
Collection of video effects
* com.android.future.usb.accessory (usb.jar)
API for USB Accessories
* com.google.android.maps (maps.jar)
API for Google Maps
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
如果有人有解决方案,可以在 circle.ci 上使用带有播放服务的模拟器,那对我来说真的很有用...
经过大量尝试,我终于可以使用此配置文件创建一个带有播放服务的 Android AVD:
machine:
environment:
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:$PATH"
TERM: "dumb"
ADB_INSTALL_TIMEOUT: "10"
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
dependencies:
pre:
- echo y | android update sdk --no-ui --all --filter tools
- echo y | android update sdk --no-ui --all --filter platform-tools
- echo y | android update sdk --no-ui --all --filter extra-android-m2repository
- echo y | android update sdk --no-ui --all --filter extra-android-support
- echo y | android update sdk --no-ui --all --filter extra-google-google_play_services
- echo y | android update sdk --no-ui --all --filter extra-google-m2repository
- echo y | android update sdk --no-ui --all --filter android-22
- echo y | android update sdk --no-ui --all --filter build-tools-23.0.2
- echo y | android update sdk -a -u -t sys-img-armeabi-v7a-google_apis-22
- android list targets
test:
override:
- echo no | android create avd -n custom-android22-googleapis -t "android-22" --abi google_apis/armeabi-v7a
- android list avd
- emulator -avd custom-android22-googleapis -no-audio -no-window:
background: true
parallel: true
# wait for emulator to have booted
- circle-android wait-for-boot
# Sleeping isn't a brilliant fix...
- sleep 30
- fb-adb rcmd screencap -p > $CIRCLE_ARTIFACTS/screen-$(date +"%T").png
- adb shell input keyevent 82
- ./gradlew connectedAndroidTest -PdisablePreDex --console=plain --info
#- fb-adb devices
- fb-adb rcmd screencap -p > $CIRCLE_ARTIFACTS/screen-$(date +"%T").png