15

尝试在我的 Android 项目中开始使用 Travis CI。首先,我使用 Android Bootstrap 设置了一个虚拟项目,并从 square 的 otto 项目中添加了一个 yml 文件 - 修改为具有我的用户名和 repo 名称。

我的构建失败并出现错误“ /home/travis/build.sh: line 94: android: command not found,即使Square 的项目构建良好

该错误似乎表明路径设置不正确,尽管我的 .travis.yml 中有这些行

  • 导出 ANDROID_HOME=~/builds/f2prateek/FoodBot/android-sdk-linux
  • 导出 PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

我还需要设置其他东西才能做到这一点吗?

4

2 回答 2

16

2014/05 更新:Travis CI 现在正式支持 Android。

http://docs.travis-ci.com/user/languages/android/

不再需要以下解决方法,除非您想在非 Android VM 上使用它。


这个问题很可能与 Travis CI 切换到 64 位虚拟机有关。您需要为 Android 安装 ia32-libs 才能在 64 位环境中运行。目前可以通过以下方式实现:

sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch

我写了一篇关于在 Travis 上运行 Android 构建的博客文章,其中涵盖了这一点以及其他细节:http ://rkistner.github.com/android/2013/02/05/android-builds-on-travis-ci/

Travis 未来可能会支持 Android 特定的虚拟机,这将简化配置。请关注关于问题 #56的对话,以获取有关此问题的更新以及有关 Android 特定 VM 的讨论。

于 2013-02-06T09:20:23.293 回答
3

这个回复涵盖了 Travis 自动测试。有关完整版本,请参阅Medium 文章:自动测试和部署。


特拉维斯 CI (@ API 26+)

显然,从 API 24 开始,设置模拟器对 Travis 来说是一种痛苦是一种痛苦[1] [2] [3] [4]

肖恩·巴博( Sean Barbeau)在这方面的研究时间比我长得多,他几乎认为无法效仿。

但是API 26+有一个更有效且更简单的替代方案,它使用gradlew而不是adb emulator. 它似乎有一些限制,但它应该工作。归功于PocketHub 。

sudo: required

language: android
jdk: oraclejdk8

before_cache:
  - rm -f  $HOME/.gradle/caches/modules-2/modules-2.lock
  - rm -rf $HOME/.gradle/caches/*/plugin-resolution/

cache:
  directories:
  - $HOME/.gradle/caches/
  - $HOME/.gradle/wrapper/
  - $HOME/.android/build-cache

env:
 global:
 - ANDROID_API=26
 - ANDROID_BUILD_TOOLS=26.0.2

android:
  components:
  - tools
  - tools # Running this twice get's the latest build tools (https://github.com/codepath/android_guides/wiki/Setting-up-Travis-CI)
  - platform-tools
  - android-${ANDROID_API}
  - build-tools-${ANDROID_BUILD_TOOLS}
  - extra

script:
- ./gradlew clean test build

您可能必须适应项目的环境变量:

一些信息应该在build.gradleAndroidStudio -> Settings -> Android SDK -> SDK Tools

(如果您正在使用更新的 AndroidStudio 构建新项目,您应该在以下链接中选择最新版本)

ANDROID_APIhttps ://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

ANDROID_BUILD_TOOLShttps ://developer.android.com/studio/releases/build-tools.html

示例 .travis.yml 设置(自动部署到 GitHub 版本)。

于 2017-11-01T22:26:54.457 回答