Travis CI陷入了在Android中启动构建工具的困境

时间:2017-03-20 04:07:18

标签: android travis-ci

我正在尝试将Travis CI添加到我的Android项目中以便为我运行测试。目前我只是尝试使用CI来构建和清理我的项目,但它不起作用,它似乎在一段时间后挂起并在最终错误输出之前在日志中无限重复。以下是日志示例:https://gist.github.com/AdamMc331/6da4433a047815d8e072bf2b7fb81a44

我对此完全感到困惑。我不知道问题是什么。下面是我的.travis.yml文件:

language: android

android:
  components:
    - tools
    - platform-tools
    - build-tools-25.0.2
    - extra-android-m2repository
    - extra-android-support
    - android-25

jdk:
  - oraclejdk8
script:
  - chmod +x gradlew
  - ./gradlew clean build --stacktrace --info

licenses:
  - android-sdk-license-.+

notifications:
  email: false

sudo: false

cache:
  directories:
    - $HOME/.gradle

我尝试将--debug添加到gradle任务中,但它没有多大帮助。一旦文件命中"尝试启动构建工具"在行中,没有打印[DEBUG]语句。

如果有人想分叉项目并亲自尝试,我使用CC-46分支:https://github.com/AdamMc331/CashCaretaker/tree/feature/CC-46如果你查看settings.gradle文件,你会注意到我只使用了现在是utilityapp-v2模块。

当我在终端本地运行这些命令时,这是一个日志文件:https://gist.github.com/AdamMc331/6d0d0575aa170a760c84ad3244aed1b7

你可以看到它也尝试在那里启动构建工具,但它不会尝试15次不同的时间,它最终会在没有错误的情况下工作。 travis构建必须做一些不同的事情。

2 个答案:

答案 0 :(得分:2)

我发现您的.travis.yml和工作样本之间存在一些差异。请尝试这个:

language: android
android:
  components:
    - tools
    - build-tools-25.0.2
    - android-25
    - platform-tools
    - extra-android-support
    - extra-google-google_play_services
    - extra-android-m2repository
    - extra-google-m2repository
  licenses:
    - '.+'

sudo: required

jdk:
  - oraclejdk8

before_script:
  - chmod +x gradlew

script:
  - ./gradlew clean build --stacktrace --info

我认为问题可能在于许可证检查或需要sudo,或者(预期较少)脚本部分。

答案 1 :(得分:2)

如果构建过程过于激烈,Travis CI可能会杀死gradle,您可能希望增加内存并添加一些性能调整。检查是否有效。

gradle.properties文件中尝试此操作:

## Project-wide Gradle settings.
#
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
#
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
org.gradle.daemon=true
#
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
#
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

编辑:尝试将您的gradle从3.3.0降级到2.2.3,因为它不能在我的项目上编译。