2015-05-06 10 views
6

Ich habe das Android Emulator-Plugin für Jenkins installiert. Ich kann ein Android-Projekt erstellen und testen. Mein Jenkins läuft auf einem Ubuntu-Server (nur Zugriff mit Terminal). Das Projekt wird von Github gezogen. Jetzt möchte ich den Emulator verwenden. Dies ist meine Konfiguration:Android Emulator auf Jenkins Fehler: Gerät offline

  • Android OS-Version: 4.4
  • Bildschirmdichte: 160
  • Bildschirmauflösung: 480x800
  • Ziel ABI: armeabi-V7A

ich auch installiert adb und hat den folgenden Befehl ausgeführt:

/opt/android-sdk-linux/tools/android update sdk --no-ui 

Aber es funktioniert nicht:

> /usr/bin/git rev-list 3440b28279e2e95113ce1c9499d9d881e76f6810 # timeout=10 
$ /opt/android-sdk-linux/tools/android list target 
[android] Using Android SDK: /opt/android-sdk-linux 
$ /opt/android-sdk-linux/platform-tools/adb start-server 
* daemon not running. starting it now on port 7767 * 
* daemon started successfully * 
$ /opt/android-sdk-linux/platform-tools/adb start-server 
[android] Starting Android emulator 
$ /opt/android-sdk-linux/tools/emulator -ports 7765,7766 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_WVGA_android-19_armeabi-v7a -no-snapshot-load -no-snapshot-save -no-window 
Failed to Initialize backend EGL display 
Could not initialize emulated framebufferemulator: WARNING: Could not initialize OpenglES emulation, using software renderer. 
emulator: warning: opening audio output failed 

$ /opt/android-sdk-linux/platform-tools/adb connect localhost:7766 
connected to localhost:7766 
[android] Waiting for emulator to finish booting... 
$ /opt/android-sdk-linux/platform-tools/adb -s localhost:7766 shell getprop init.svc.bootanim 
error: device offline 
$ /opt/android-sdk-linux/platform-tools/adb connect localhost:7766 
$ /opt/android-sdk-linux/platform-tools/adb -s localhost:7766 shell getprop init.svc.bootanim 
error: device offline 
... 
$ /opt/android-sdk-linux/platform-tools/adb connect localhost:7766 
[android] Interrupted while waiting for emulator to finish booting. 
[android] Emulator was shut down before it finished booting 
$ /opt/android-sdk-linux/platform-tools/adb disconnect localhost:7766 
[android] Stopping Android emulator 
$ /opt/android-sdk-linux/platform-tools/adb kill-server 
Archiving artifacts 
Recording test results 
ERROR: Publisher hudson.tasks.junit.JUnitResultArchiver aborted due to exception 
hudson.AbortException: Test reports were found but none of them are new. Did tests run? 
For example, AndroidManifest.xml is 10 min old 

Gibt es jemanden mit einer Erklärung für dieses Problem? Danke

+0

Siehe auch http://stackoverflow.com/questions/23699433/android-emulator-jenkins-plugin-not-working –

Antwort

1

Ich habe das gleiche Problem, auch wenn Sie die Befehle manuell versuchen. Aber ich konnte das Problem lösen, wenn Häfen wie 5555,5556 mit nach diesem Kommentar: JENKINS-27456

Es ist eine assoziiertes Pull-Anforderung: PR on github

Ich werde sehen, ob ich Zeit habe, zu erhalten und einen Build zu testen, mit dieser Patch und wird Sie wissen lassen, ob es das Problem löst.

+0

Können Sie hier einige Codebeispiel bereitstellen. – Ajit

+0

Immer noch daran arbeiten (nicht Vollzeit). Ich bemerkte, dass "adb connect" "connected" zurückgibt, sobald es den Socket geöffnet und seine "CNXN" -Anfrage gesendet hat, aber bevor die "CNXN" -Antwort empfangen wird. Dann, wenn der nächste ADB-Befehl vor diesem ausgeführt wird, schlägt es fehl. Aber ich weiß nicht, warum diese Antwort manchmal sofort und manchmal nach 5-6 Sekunden kommt. Untersuchung. Ich werde Updates veröffentlichen (und ggf. eine PR einreichen), sobald ich etwas Interessantes zu berichten habe. –

+0

Also, ich schaffe es, das Plugin etwas anderes als "Gerät offline" zu haben, indem ich ein bisschen das Emulator Plugin ändere und ein "Thread" hinzufüge .sleep (10 * 1000) "nach dem adb connect-Befehl. Aber zu diesem Zeitpunkt erhält der Emulator einen "running" Status für den bootanim und erwartet einen "stopped" Status. –