2016-10-24 2 views
2

私は現在、Android 24/build tools 24.0.3で動作しているいくつかの問題を抱えているtravis.ymlを取得しようとしています。Android Lib付きTravis CI - 互換性のあるデバイスが接続されていません

私は私のtravis.ymlに対して次があります。

: No compatible devices connected.[TestRunner] FAILED Found 1 connected device(s), 0 of which were compatible. :app:connectedDebugAndroidTest FAILED 

か::

完全に2つです
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself. 

language: android 
sudo: required 
jdk: oraclejdk8 

cache: 
    directories: 
    - ${TRAVIS_BUILD_DIR}/gradle/caches/ 
    - ${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/ 

env: 
    global: 
    - ANDROID_API_LEVEL=24 
    - ANDROID_BUILD_TOOLS_VERSION=24.0.3 
    - ANDROID_ABI=armeabi-v7a 
    - ANDROID_TAG=google_apis 
    - ADB_INSTALL_TIMEOUT=20 # minutes (2 minutes by default) 

android: 
    components: 
    - tools # to get the new `repository-11.xml` 
    - platform-tools 
    - tools # to install Android SDK tools 25.1.x 
    - build-tools-$ANDROID_BUILD_TOOLS_VERSION 
    - android-$ANDROID_API_LEVEL 
    # For Google APIs 
    - addon-google_apis-google-$ANDROID_API_LEVEL 
    # 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-google_apis-$ANDROID_API_LEVEL 

before_script: 
    - echo no | android create avd --force -n test -t "android-"$ANDROID_API_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG 
    - emulator -avd test -no-skin -no-window & 
    - android-wait-for-emulator 

script: 
    - ./gradlew clean jacocoDebugTestReport 

は私の現在の問題は、私は入れませんということです別々のエラー状態。

誰かが私のtravis.ymlに関して何かが間違っているか間違っているのを見ると、それがうまくいかない理由を説明するのに役立ちます。

答えて

1

travis_waitを追加し、2番目の問題を修正するのを待つのに必要な時間を追加します。

before_script: 
    - echo no | android create avd --force -n test -t "android-"$ANDROID_API_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG 
    - emulator -avd test -no-skin -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 

script: 
    - travis_wait 20 ./gradlew clean jacocoDebugTestReport 

最初の問題を修正した場合、おそらく以前の解決策は必要ありません。

下の行は、私はアンドロイド-24上でそれをテストしていないと私は回避策として、完全なログ

- adb shell input keyevent 82 & 

を確認する必要が示唆したように、私は下のAPIレベルを使用することになり、通常必要ですhereより良い解決策が見つかるまで。

このタイプの問題の解決策を見つけようと、過去2年間多くの時間を費やしてきました。これは、ciビルドを低いAPIやデバイスに使用したり、最近のAPIをローカルテストすることです。

最新のAPIを使用する利点は、問題の解決に必要な時間を考慮すれば十分ではありません。

1

Ardockが投稿した内容を精緻化して、私はエミュレータSDKレベルを下げることで問題を解決することができました。私の作業travis.ymlは次のとおりです。

language: android 
jdk: oraclejdk8 
sudo: false 

android: 
    components: 
    - platform-tools 
    - tools 
    - build-tools-24.0.3 
    - android-22 
    - android-24 
    - sys-img-armeabi-v7a-android-22 
    - extra-android-m2repository 
    - extra-android-support 
    - extra-google-m2repository 

before_script: 
    # Create and start emulator 
    - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - android-wait-for-emulator 
    - adb shell input keyevent 82 & 

script: ./gradlew clean connectedAndroidTest -PdisablePreDex --stacktrace 

これは、複数のSDKをダウンロードしてインストールする必要が超エレガントではないが、https://github.com/isuPatches/WiseFy/commits/masterhttps://travis-ci.org/isuPatches/WiseFy/buildsは、それが働いていることを示しています。

+0

ご協力いただきありがとうございます。実際、両方のプラットフォームをダウンロードするのは間違いありません。あなたの[sdkターゲット](https://github.com/ardock/android-topeka/blob/acib/scripts/acib#L49)と各[エミュレータターゲット](https://github.com/ardock/android-topeka) /blob/acib/.travis.yml#L27)。以前のプラットフォームは[プリインストールされています](https://github.com/travis-ci/travis-cookbooks/blob/a68419ebe0ce92876a70534cd145ddd931d0feee/ci_environment/android-sdk/attributes/default.rb)です。 – albodelu

関連する問題