将gradle更新为2.10,现在travis无法找到我的测试

时间:2016-03-10 10:37:35

标签: java android travis-ci

我猜这是travis-ci支持吗?我是从他们的网站发送到这里的。我想我应该在这里问这个问题。

所以我将谷歌分析添加到我的应用程序中,为此,我必须将gradle更新为版本2.10以获取其插件。完成后,所有travis-ci都运行了我的构建,但是每次构建都会出现以下错误:

com.android.builder.testing.ConnectedDevice > No tests found.[test(AVD) - 5.0.2] FAILED

当我使用gradle2.2.1.-all时,这不是问题。

要更新,我更改了distributionUrl

中的gradle/wrapper/gradle-wrapper.properties

有人知道解决这个问题吗?我所有的其他分支都很好,我没有做出这种改变。

这里的参考是我的travis.yml,我没有改变它,只是更新了gradle。

language: android
jdk: oraclejdk7
android:
  components:
    - platform-tools
    - tools
    - build-tools-23.0.2
    - android-23
    - sys-img-armeabi-v7a-android-21
    - extra-android-support
    - extra-android-m2repository
    - extra-google-m2repository
    - extra-gooogle-google_play_services

env:
  global:
    - ADB_INSTALL_TIMEOUT=8
    - MALLOC_ARENA_MAX=2

sudo: false
cache:
  directories:
    - $HOME/.gradle/caches/2.8
    - $HOME/.gradle/caches/jars-1
    - $HOME/.gradle/daemon
    - $HOME/.gradle/native
    - $HOME/.gradle/wrapper

before_install:
  - export ANDROID_HOME=/usr/local/android-sdk
  - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
  - echo "sdk.dir=$ANDROID_HOME" > local.properties

notifications:
  slack: caketechnologies:pnmNEHM1ZxudlMZNTv6oVgcT

install:
  - TERM=dumb ./gradlew -s assembleDemoDebug

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

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

3 个答案:

答案 0 :(得分:5)

这是我的.travis.yml文件。在开始构建之前下载gradle 2.10,因为它还没有在Travis中。

language: android
jdk:
    - oraclejdk8
env:
  matrix:
    - ANDROID_TARGET=android-21 ANDROID_ABI=armeabi-v7a
  global:
    - ADB_INSTALL_TIMEOUT=8
android:
  components:
    - build-tools-23.0.3
    - android-23
    - add-on
    - extra
    - sys-img-armeabi-v7a-android-21
before_script:
    - wget http://services.gradle.org/distributions/gradle-2.10-bin.zip
    - unzip gradle-2.10-bin.zip
    - export GRADLE_HOME=$PWD/gradle-2.10
    - export PATH=$GRADLE_HOME/bin:$PATH

希望它有所帮助。

答案 1 :(得分:0)

这些建议无法解决问题,请忽略此回复

您正在使用android gradle插件1.5,但您昨天更新了google play services插件到2.0.0.x以支持google-services.json用于不同的productFlavors。他们从1.5更新到2.0.0.x here。我会尝试将android gradle插件更新为2.0.0.x,如下所示:

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-beta6'
        classpath 'com.google.gms:google-services:2.0.0-beta6'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

上次更新: 我没有使用此插件版本,也许将gradle插件版本更新为2.0.0.X就像here一样解决了这个问题。

Google just included support for flavors on version 2.0 of the play services plugin. Since this version of the gradle plugin com.google.gms:google-services:2.0.0-alpha3

如果没有Travis-ci上的PATH更改,我尝试了一次,他们已经导出了他们的默认位置,我现在不确定,但这对我来说是一个问题,我在一开始。

<强>更新

由于这个答案没有解决问题,额外的建议:

  • 添加2.10后,您的本地版本是否正常工作? Google-services plugin config
  • 构建./gradlew build connectedCheck -PdisablePreDex --debug
  • 更新Android Gradle plugin version
  • 我建议您添加更多info --debug,以便了解真正的原因
  • 更改skin
  • 使用./gradlew clean assemble -PdisablePreDex
  • 将新导出添加到PATH的开头,因此在默认
  • 之前找到

第一个回答:

也许您需要clearing-caches或更改此行:

- $HOME/.gradle/caches/2.8

通过

- $HOME/.gradle/caches/

我想你应该注释下一行以丢弃与缓存相关的问题:

sudo: false
cache:
  directories:
    - $HOME/.gradle/caches/2.8
    - $HOME/.gradle/caches/jars-1
    - $HOME/.gradle/daemon
    - $HOME/.gradle/native
    - $HOME/.gradle/wrapper

答案 2 :(得分:0)

作为替代方案,请使用gradle wrapper(aka gradlew)。特拉维斯使用gradlew(如果有的话)。

Chapter 5. The Gradle Wrapper