我知道已经有关于此主题here的帖子,但是答案似乎不起作用。
基本上我得到了错误:
Error: Invalid --abi armeabi-v7a for the selected target.
我遵循了他们文档中的说明,因此我的.travis.yml
看起来像这样:
language: android
dist: trusty
android:
components:
# Uncomment the lines below if you want to
# use the latest revision of Android SDK Tools
- tools
- tools
- platform-tools
# The BuildTools version used by your project
- build-tools-29.0.2
# The SDK version used to compile your project
- $ANDROID_TARGET
# Additional components
#- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
# Specify at least one system image,
# if you need to run emulator(s) during your tests
#- sys-img-x86-android-29
#- sys-img-armeabi-v7a-addon-google_apis-google-$ANDROID_TARGET
- sys-img-armeabi-v7a-android-$ANDROID_TARGET
before_install:
- yes | sdkmanager "platforms;android-29"
env:
matrix:
#- ANDROID_TARGET=android-17 ANDROID_ABI=google_apis/armeabi-v7a
- ANDROID_TARGET=android-29 ANDROID_ABI=armeabi-v7a
before_script:
- android list targets
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
这是日志(full log is here)的摘要:
$ android list targets
Available Android targets:
----------
id: 1 or "android-25"
Name: Android 7.1.1
Type: Platform
API level: 25
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
----------
id: 2 or "android-29"
Name: Android 10
Type: Platform
API level: 29
Revision: 4
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : no ABIs.
0.81s$ echo no | android create avd --force -n test -t $ANDROID_TARGET --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 $ANDROID_TARGET --abi $ANDROID_ABI" failed and exited with 1 during .
我是不是在这里错过了一些琐碎的事情,还是Travis目前真的对Android 29有问题?但是我也无法使其适用于其他版本。您能否为我提供一个最新的工作示例?
我现在终于可以工作了,不是版本29,而是版本24。仍然想知道如何使用当前版本...无论如何,如果有人也偶然发现此问题,这就是我现在的.travis.yml
外观:
language: android
dist: trusty
android:
components:
# installing tools to start, then use `sdkmanager` below to get the rest
- tools
before_install:
- chmod +x gradlew
addons:
apt:
sources:
- deadsnakes # source required so it finds the package definition below
packages:
- python3.6
before_script:
- touch local.properties
env:
global:
- ADB_INSTALL_TIMEOUT=8
- ABI=armeabi-v7a
- EMU_FLAVOR=default # use google_apis flavor if no default flavor emulator
# PATH order is incredibly important. e.g. the 'emulator' script exists in more than one place!
- ANDROID_HOME=/usr/local/android-sdk
- TOOLS=${ANDROID_HOME}/tools
- PATH=${ANDROID_HOME}:${ANDROID_HOME}/emulator:${TOOLS}:${TOOLS}/bin:${ANDROID_HOME}/platform-tools:${PATH}
matrix:
#- ANDROID_TARGET=android-17 ANDROID_ABI=google_apis/armeabi-v7a
#- ANDROID_TARGET=android-29 ANDROID_ABI=armeabi-v7a
- API=24
# Emulator Management: Create, Start and Wait
install:
- p="$(which python3 | sed 's/\//\\\//g')" # find python path and replace all / with \/
- sed -i "s/buildPython.*/buildPython \"$p\"/" app/build.gradle # insert python interpreter path in gradle build file
- echo 'count=0' > /home/travis/.android/repositories.cfg # Avoid harmless sdkmanager warning
- echo y | sdkmanager "platform-tools" #>/dev/null
- echo y | sdkmanager "tools" #>/dev/null # A second time per Travis docs, gets latest versions
- echo y | sdkmanager "build-tools;29.0.2" >/dev/null # Implicit gradle dependency - gradle drives changes
- echo y | sdkmanager "platforms;android-$API" >/dev/null # We need the API of the emulator we will run
- echo y | sdkmanager "platforms;android-29" >/dev/null # We need the API of the current compileSdkVersion from gradle.properties
- echo y | sdkmanager --channel=4 "emulator" # Experiment with canary, specifying 28.0.3 (prior version) did not work
- ls -lat ${ANDROID_HOME}/emulator
- echo y | sdkmanager "extras;android;m2repository" >/dev/null
- echo y | sdkmanager "system-images;android-$API;$EMU_FLAVOR;$ABI" #>/dev/null # install our emulator
- echo no | avdmanager create avd --force -n test -k "system-images;android-$API;$EMU_FLAVOR;$ABI" -c 10M
- emulator -verbose -avd test -no-accel -no-snapshot -no-window $AUDIO -camera-back none -camera-front none -selinux permissive -qemu -m 1536 &
- android-wait-for-emulator
- adb shell input keyevent 82 &