当前位置: 首页 > 知识库问答 >
问题:

把gradle更新到2.10现在Travis找不到我的测试了

江丰羽
2023-03-14

我猜这是特拉维斯-ci支持?我是从他们的网站被送到这里的。我想我应该在这里问这个问题。

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

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

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

为了更新,我在等级/包装器/等级包装器属性中更改了分发Url

有人知道解决这个问题吗?我的所有其他分支都很好,我没有进行此更改。

这里是我的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个答案

桂和同
2023-03-14

作为替代,使用gradle包装器(又名gradlew)。Travis如果可能的话用gradlew。

第5章Gradle包装器

霍永年
2023-03-14

这些建议不能解决问题,忽略此响应

您使用的是android gradle插件1.5,但您昨天将google play services插件更新为2.0.0. x,以支持不同产品口味的google-services.json。他们在这里将两者都从1.5更新为2.0.0. x。我也会尝试将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可以解决这个问题。

谷歌刚刚在play services插件的2.0版本中加入了对口味的支持。自从这个版本的gradle插件com . Google . GMS:Google-services:2 . 0 . 0-alpha 3

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

更新:

由于这个答案不能解决问题,额外建议:

  • 添加2.10后您的本地构建是否正常工作?Google-services插件配置
  • Build./gradlew build connect tedCheck-PdisablePreDex--debug
  • 更新Android Gradle插件版本
  • 我建议添加更多信息--debug以便您阅读真正的原因
  • 换皮肤
  • 使用./gradlew干净组装-PdisablePreDex
  • 将新导出添加到PATH的开头,以便在默认之前找到

第一个答案:

也许您需要清除缓存或更改此行:

- $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
明安阳
2023-03-14

这是我的. 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

希望它有所帮助。

 类似资料:
  • 我有一个Android库项目,其中包括一些单元测试。测试在开发机器和现场持续集成机器上运行和通过。现在,我想将项目的主机存储库连接到travis-ci(https://travis-ci.org/)并在那里运行测试。 我已经设置了我的travis帐户,这样travis就可以访问存储库并在每次推送时运行构建,然而,构建失败了,因为travis无法找到我想运行的gradle任务。 这是我的。travi

  • 在Android应用程序中, 我将Android Studio更新为最新版本(3.6.1) 现在同步Gradle时,找不到Gradle插件,错误如下: 原因:org。格雷德尔。应用程序编程接口。内部的人工制品ivyservice。DefaultLenientConfiguration$ArtifactResolveException:无法解析配置的所有文件“:classpath”。 而且 原因:o

  • 我试图为嵌套的多项目结构运行,但我遇到了一些问题,这些问题似乎只出现在具有测试源根的项目中。作为java和gradle的新手,我肯定我打破了不止一个惯例,但我仍然认为这是可行的。 从本质上说,所有的依赖项似乎都添加得很好,但当我有一个项目只有一个测试srcDir而依赖于另一个项目,而另一个项目有一个测试srcDir时,它就无法识别根项目中的包/符号。然而,具有常规srcDirs(不是测试)的项目似

  • 当我在Kotlin中的嵌套类中指定测试时,如下所示。。。 ...当使用gradle运行测试时,JUnit无法识别它。只有被找到并运行。 我使用的是JUnit 5.1、Kotlin 1.2.30和Gradle 4.6。

  • 我们最近升级了我们的Kotlin Spring Boot项目,使之成为Spring Boot2.3.2,从那以后,gradle似乎再也无法进行任何测试了。 我们使用的是 gradle 包装器 5.6.2 并升级到 6.3,尽管文档指出 5.6.x 也应该可以工作。Gradle 升级没有帮助,gradle 仍然无法接受任何测试,当我降级到 2.2.3 时它工作正常。我们使用Kotest,Junit5

  • 伙计们,请帮帮我,我不能在Flitter中构建或升级任何东西,我会遇到很多类似失败的错误:构建失败,但有一个例外。 出了什么问题:任务'执行失败:app: check ReleaseAarMetadata'。 发生多个任务操作失败:执行com时发生故障。Android建筑格雷德尔。内部的任务。CheckAarMetadataWorkAction > 尝试:使用--stacktrace选项运行以获取