2017-10-12 72 views
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 
    } 
} 

有类似的问题堆栈溢出关于同样的问题,但他们都涉及到android studio和模拟器​​没有入门。但是,在travis配置文件中,我已经要求它等到仿真器上线使用- adb wait-for-device

任何人都可以请帮我弄清楚这一点吗?谢谢。

编辑

构建过程失败的位置:

: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日志的问题部分吗? –

+0

它实际上在这里失败:app:connectedDebugAndroidTestUnable安装/home/travis/build/AmitBarjatya/RealmMvp/app/build/outputs/apk/debug/app-debug.apk com.android.ddmlib.InstallException:Unknown failure(Error :无法访问软件包管理器系统是否正在运行?) –

+0

我要求将它发布在评论中,但作为您的问题的一部分。那么你的问题看起来会非常好。 –

回答

1

而不是

- adb wait-for-device 

使用

- android-wait-for-emulator 

android-wait-for-emulator脚本不仅会等待设备,而且还会导致启动动画太完整。

+0

它的工作!非常感谢。你知道为什么当我重试它们时已经通过的构建失败了吗? –

+0

巧合......或者他们用容器改变了一些东西导致了这些问题。 – tynn