我正在尝试将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文件,你会注意到我只使用了现在是utility
和app-v2
模块。
当我在终端本地运行这些命令时,这是一个日志文件:https://gist.github.com/AdamMc331/6d0d0575aa170a760c84ad3244aed1b7
你可以看到它也尝试在那里启动构建工具,但它不会尝试15次不同的时间,它最终会在没有错误的情况下工作。 travis构建必须做一些不同的事情。
答案 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,因为它不能在我的项目上编译。