Android Travis CI无效abi

问题描述 投票:0回答:1

我知道已经有关于此主题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有问题?但是我也无法使其适用于其他版本。您能否为我提供一个最新的工作示例?

android travis-ci
1个回答
0
投票

我现在终于可以工作了,不是版本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 &
© www.soinside.com 2019 - 2024. All rights reserved.