Android Трэвис С.И. недействительный аби - PullRequest
0 голосов
/ 18 января 2020

Я знаю, что уже есть сообщение об этой топике c здесь , но ответы, похоже, не работают.

В основном я получаю сообщение об ошибке:

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 &

А вот фрагмент журнала ( полный журнал здесь ):

$ 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 .

Я что-то упустил здесь тривиально или у Трэвиса действительно проблема с android 29 в данный момент? Но я не мог заставить это работать и для других версий. Можете ли вы привести текущий рабочий пример для меня?

1 Ответ

0 голосов
/ 21 января 2020

Теперь я наконец-то работает, но не для версии 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 &
...