我试图将一个Android项目从使用API Level 19 SDK和构建工具更新到最新的API Level 21,包括Google APIs。在此更新之前,所有内容在Travis上都很正常运行(例如,请参见此构建)。
当我使用新的API level运行时,我会看到以下错误:
0.42s$ echo no | android create avd --force -n test -t "Google Inc.:Google APIs:"$ANDROID_API_LEVEL --abi $ANDROID_ABI
Valid ABIs: no ABIs.
Error: Invalid --abi armeabi-v7a for the selected target.
The command "echo no | android create avd --force -n test -t "Google Inc.:Google APIs:"$ANDROID_API_LEVEL --abi $ANDROID_ABI" failed and exited with 1
完整的Travis输出请查看此版本。
这是我的.travis.yml文件:
language: android
jdk: oraclejdk7
# Turn off caching to avoid any caching problems
cache: false
# Use the Travis Container-Based Infrastructure (see #203)
sudo: false
env:
global:
- ANDROID_API_LEVEL=21
- ANDROID_BUILD_TOOLS_VERSION=21.1.2
- ANDROID_ABI=armeabi-v7a
android:
components:
- platform-tools
- tools
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- android-$ANDROID_BUILD_TOOLS_VERSION
# For Google Maps API v1
- addon-google_apis-google-$ANDROID_API_LEVEL
# Google Play Services
- extra-google-google_play_services
# Support library
- extra-android-support
# Latest artifacts in local repository
- extra-google-m2repository
- extra-android-m2repository
# Specify at least one system image,
- sys-img-armeabi-v7a-android-$ANDROID_BUILD_TOOLS_VERSION
before_script:
# Create and start emulator
- echo no | android create avd --force -n test -t "Google Inc.:Google APIs:"$ANDROID_API_LEVEL --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
script:
- ./wait_for_emulator
- ./gradlew connectedCheck -PdisablePreDex
我的 build.gradle 在这里。
新的 Travis 构建中,我仅更改了 API 级别和构建工具级别。
android create avd --force -n test -t "android-23" --abi "armeabi-v7a" --tag "google_apis"
现在会出现错误:所选目标无效--tag google_apis。 - PLNech