2017-10-12 3 views
1

私は自分のプロジェクトの1つとしてtravis CIを使用しようとしていますが、動作させることができません。 .travis.yml設定ファイルを作成してビルドが成功しました。しかし、驚いたことにビルドは、私が数時間後にコミットをプッシュしたときに再び失敗し始めました。また、以前に渡していたビルドを再起動するとビルドが失敗しました。なぜこのことがランダムに起こっているのか分かりません。ここでTravis CIエラー:パッケージマネージャにアクセスできませんでした。システムは動作していますか?

はトラヴィスのログです: Travis Log

と.travis.ymlファイルには、次のようになります。

language: android 
jdk: oraclejdk8 
sudo: required 
env: 
    matrix: 
    - ANDROID_TARGET=android-21 ANDROID_ABI=armeabi-v7a 

android: 
    components: 
    - tools 
    - platform-tools 
    - tools 
    - build-tools-26.0.2 
    - $ANDROID_TARGET 
    - android-26 
    - sys-img-armeabi-v7a-$ANDROID_TARGET 
    licenses: 
    - android-sdk-preview-license-.+ 
    - android-sdk-license-.+ 
    - google-gdk-license-.+ 
before_install: 
    - mkdir "$ANDROID_HOME/licenses" || true 
    - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" 
    - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" 
    - chmod +x gradlew 
    - ./gradlew dependencies || true 
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: 
    # Create and start emulator 
    - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI 
    - emulator -avd test -no-skin -no-audio -no-window & 
    - adb wait-for-device 
    - adb shell input keyevent 82 & 

script: ./gradlew connectedAndroidTest 

そしてGradleのファイルの関連スニペット:

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.2" 
    defaultConfig { 
     applicationId "com.amit.realmmvp" 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    lintOptions { 
     abortOnError false 
    } 
} 

あります同じ問題についてスタックオーバーフローに関する同様の質問がありますが、それらはすべてアンドロイドスタジオとエミュレータが起動していないことに関連しています。しかし、travis configファイルでは、私はすでにエミュレータがオンラインになるまで待つように頼んでいます。- adb wait-for-device

誰でも私がこれを理解するのを助けてくれますか?ありがとう。ビルドプロセスは、ここで失敗した

EDIT

:app:connectedDebugAndroidTestUnable to install /home/travis/build/AmitBarjatya/RealmMvp/app/build/outputs/apk/debug/app-debug.apk 
com.android.ddmlib.InstallException: Unknown failure (Error: Could not access the Package Manager. Is the system running?) 
    at com.android.ddmlib.Device.installRemotePackage(Device.java:1004) 
    at com.android.ddmlib.Device.installPackage(Device.java:911) 
    at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:122) 
    at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:126) 
    at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:52) 
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) 
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) 
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) 
+0

Travis Logの問題箇所をここに投稿できますか? –

+0

実際には失敗します:app:connectedDebugAndroidTestUnable /home/travis/build/AmitBarjatya/RealmMvp/app/build/outputs/apk/debug/app-debug.apk com.android.ddmlib.InstallException:不明なエラー(エラー:パッケージマネージャにアクセスできませんでした。システムは動作していますか?) –

+0

私はコメントにではなく、あなたの質問として投稿してください。あなたの質問はとてもよく見えます。 –

答えて

1

代わりの

- adb wait-for-device 

使用

- android-wait-for-emulator 

android-wait-for-emulatorスクリプトは、デバイスを待つだけでなく、起動アニメーションも完了するのを待っているだけでなく、

+0

それは働いた!どうもありがとう。私がそれらを再試行したときに既に渡されたビルドが失敗した理由を知っていますか? –

+0

偶然...彼らはこれらの問題の原因となった容器で何かを変えました。 – tynn

関連する問題