Travis-CI构建错误android应用程序

时间:2018-04-25 17:08:52

标签: android continuous-integration travis-ci

我正在尝试使用Travis-CI构建我的应用程序。
但由于某种原因,它不断给出这个错误:

The command "./gradlew build connectedCheck" exited with 1.

这就是我的.travis.yml:

    language: android
    before_install:
      - chmod +x gradlew
    android:
     components:
       - tools 
       - platform-tools
       - build-tools-27.1.1
       - android-27

    script:
     - ./gradlew build connectedCheck

这里有一个链接到我的Travis构建:
https://travis-ci.org/Luuk2016/WeatherApp-Android/jobs/371162957

我的build.gradle文件:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.district420.weatherapp"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

希望有人可以帮助我

1 个答案:

答案 0 :(得分:1)

您的构建失败,因为您尚未接受Android SDK包的许可。将此行添加到 travis.yml。

env:
  global:
    - ANDROID_API_LEVEL=27
    - ANDROID_EMULATOR_LEVEL=21
    - ANDROID_BUILD_TOOLS_VERSION=27.0.3
    - ANDROID_ABI=armeabi-v7a
    - ANDROID_TAG=google_apis
    - ADB_INSTALL_TIMEOUT=20

编辑:

由于“无连接设备”错误,您的构建现在失败了。您必须在travis中创建一个模拟器并在其上运行检测测试。 在travis.yml文件中也添加这些行。

 - android-$ANDROID_EMULATOR_LEVEL
 - sys-img-armeabi-v7a-google_apis-$ANDROID_EMULATOR_LEVEL

将这些行添加到travis文件的components部分。

before_script:
# Create and start emulator.
  - echo no | android create avd --force -n test -t "android-"$ANDROID_EMULATOR_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG
  - emulator -avd test -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &

添加这些行

sudo: false

另外,将其添加为travis.yml的第一行

onActivate(event){
      this.yourService.getData().subscribe(x=>{
        event.data = x; // this is where you are assigning the data to child
      })