Android Travis CI 错误:所选目标的 --abi armeabi-v7a 无效
Posted
技术标签:
【中文标题】Android Travis CI 错误:所选目标的 --abi armeabi-v7a 无效【英文标题】:Android Travis CI Error: Invalid --abi armeabi-v7a for the selected target 【发布时间】:2019-06-22 19:57:48 【问题描述】:我的 Travis 构建不断失败,因为它显然无法识别 arm
abi。这是我完整的.travis.yml
:
language: android
sudo: required
env:
global:
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
- ANDROID_ABI=armeabi-v7a
- ANDROID_EMU_API_LEVEL=27
android:
components:
- tools
- platform-tools
- tools # appears twice as per Travis docs
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- android-$ANDROID_API_LEVEL
- android-$ANDROID_EMU_API_LEVEL
- extra-android-m2repository
- sys-img-$ANDROID_ABI-android-$ANDROID_EMU_API_LEVEL
licenses:
- 'android-sdk-preview-license-52d11cd2'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
before_script:
- echo no | android create avd --force -n test -t android-$ANDROID_EMU_API_LEVEL --abi $ANDROID_ABI -c 100M
- emulator -avd test -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
- chmod +x gradlew
script:
- android list target
- ./gradlew clean build
- ./gradlew test
- ./gradlew connectedCheck
我也试过把模拟器里的abi改成google_apis/armeabi-v7a
,没用。还尝试在系统映像下载中添加google_apis
。我目前已经尝试过API_LEVEL
22、27 和 28。
这里有什么问题?
【问题讨论】:
你解决了吗?遇到一个非常相似的问题.. 仍然没有解决@aleksandrbel 【参考方案1】:你可以试试ANDROID_ABI=arm64-v8a
而不是ANDROID_ABI=armeabi-v7a
【讨论】:
谢谢,但我仍然收到Valid ABIs: no ABIs.
Error: Invalid --abi arm64-v8a for the selected target.
你知道你的目标是什么abi吗?
目标是什么意思?我认为 Travis 默认是 armeabi-v7a,就像他们的文档说的那样。
"Error: Invalid --abi armeabi-v7a for the selected target"表示目标不是好目标,你也可以试试x86
和x86_64
,Valid ABIs: no ABIs.
你的目标可能无法识别对不起,我帮不了你了
是的... Travis 还不支持 x86。还是谢谢【参考方案2】:
我不知道这是否仍然相关,因为它是在 4 个月前被问到的,但我最近也遇到了同样的问题。我尝试了人们建议的许多不同的方法,但在我以这种方式设置之前都没有奏效:
language: android
sudo: required
jdk: oraclejdk8
env:
global:
- ANDROID_API_LEVEL=28
- ANDROID_BUILD_TOOLS_VERSION=28.0.3
- ANDROID_ABI=armeabi-v7a
android:
components:
- tools
- platform-tools
- tools
- extra-android-m2repository
licenses:
- 'android-sdk-preview-license-52d11cd2'
- 'android-sdk-license-.+'
- 'google-gdk-license-.+'
before_install:
- touch $HOME/.android/repositories.cfg
- yes | sdkmanager "platforms;android-28"
- yes | sdkmanager "build-tools;28.0.3"
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache
before_script:
- chmod +x gradlew
script:
- ./gradlew clean build
- ./gradlew test
【讨论】:
以上是关于Android Travis CI 错误:所选目标的 --abi armeabi-v7a 无效的主要内容,如果未能解决你的问题,请参考以下文章