2013-01-17 4 views
13

Ich versuche, mit Travis CI für meine Android-Projekte zu beginnen. Zuerst habe ich ein Dummy-Projekt mit Android-Bootstrap eingerichtet und eine XML-Datei aus dem otto-Projekt von square hinzugefügt - geändert, um meinen Benutzernamen und meinen Repo-Namen zu haben.Travis CI für Android

Mein Build mit dem Fehler fehlschlägt "/home/travis/build.sh: line 94: android: command not found, auch wenn square's project builds fine.

Der Fehler scheint darauf hinzudeuten, dass der Pfad nicht richtig eingestellt ist, trotz dieser Zeilen in meinem .travis.yml mit

ANDROID_HOME
  • export = ~/Builds/f2prateek/FoodBot/android-sdk-linux
  • export PATH = $ {PATH}: $ {ANDROID_HOME}/Tools: $ {ANDROID_HOME}/Plattform-Tools

Gibt es noch etwas, das ich einrichten muss, um das richtig zu machen?

Antwort

16

Update 2014/05: Travis CI hat jetzt offizielle Unterstützung für Android.

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

Die folgenden Abhilfen sind nicht mehr erforderlich, wenn Sie es auf einem Nicht-Android VM verwenden möchten.

Das Problem ist höchstwahrscheinlich mit der Tatsache, dass Travis CI zu 64-Bit-virtuellen Maschinen umgeschaltet hat. Sie müssen ia32-libs für Android in einer 64-Bit-Umgebung ausführen. Dies kann zur Zeit mit erreicht werden:

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

ich einen Blog-Post schrieb am Bekommen Android auf Travis Builds laufen, die diese sowie weitere Details umfasst: http://rkistner.github.com/android/2013/02/05/android-builds-on-travis-ci/

Travis könnte unterstützen Android-spezifische virtuelle Maschinen in die Zukunft, die die Konfiguration vereinfachen wird. Folgen Sie der Unterhaltung auf issue #56 für Updates zu diesem Problem und Diskussionen auf der Android-spezifischen VM.

+0

Yup, folgte das seit Wochen. Danke für die Problemumgehung :) – f2prateek

+0

Ich bekomme den folgenden Fehler: Die folgenden Pakete haben unerfüllte Abhängigkeiten: ia32-libs-multiarch: i386: Hängt ab: libgphoto2-2: i386 aber es wird nicht installiert Hängt ab: libsane: i386 aber es wird nicht installiert E: Nicht in der Lage, Probleme zu beheben, haben Sie defekte Pakete gehalten. – emmby

+0

Sie erhalten einen Fehler, wenn Sie versuchen, nur 'ia32-libs-multiarch 'zu installieren - Sie müssen die gesamte Zeile verwenden, wie ich es oben habe. – Ralf

2

Diese Antwort bezieht sich auf Travis automatische Tests. Die vollständige Version finden Sie unter Medium article: Automatisches Testen und Deployment.


Travis CI (@ API 26+)

Scheinbar von API 24 den Emulator Einrichten ist ein Schmerz auf Travis ein Schmerz [1][2][3][4] ist.

Sean Barbeau, wer graben hat für viel mehr Zeit als ich habe, hat pretty much considered it impossible zu emulieren.

Aber es gibt eine Arbeits- und einfachere Alternative für API 26+, die die Tests mit gradlew anstelle des adb emulator läuft. Es seems to have some limitations, aber es sollte funktionieren. Dank an 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 

Umgebungsvariablen, die Sie zu einem Projekt diejenigen haben könnten anzupassen:

Einige Informationen zur Verfügung stehen sollten entweder im build.gradle oder AndroidStudio -> Settings -> Android SDK -> SDK Tools

(wenn Sie ein neues Projekt Gebäude sind mit einem aktualisierten AndroidStudio sollten Sie nur die neuesten Versionen in den folgenden Links auswählen)

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

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

Example .travis.yml setup (mit autodeploy zu GitHub Releases).