2015-05-06 3 views
6

Я установил плагин Android Emulator для Jenkins. Я могу создать и протестировать Android-проект. Мой Jenkins работает на сервере Ubuntu (доступ только с терминалом). Проект вытащен из Гитуба. Теперь я хочу использовать эмулятор. Это моя конфигурация:Android Emulator on Jenkins error: устройство отключено

  • Android версии OS: 4.4
  • Плотность экрана: 160
  • Разрешение экрана: 480x800
  • Целевая ABI: armeabi-v7a

Я также установил ADB и выполнил следующую команду:

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

Но это не работает:

> /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 

Есть ли у кого-нибудь разъяснения по этому вопросу? Спасибо

+0

См. Также http://stackoverflow.com/questions/23699433/android-emulator-jenkins-plugin-not-working –

ответ

1

Я сталкиваюсь с той же проблемой, даже когда вы пытаетесь выполнить команды вручную. Но я мог бы решить эту проблему при использовании портов как 5555,5556 в соответствии с этим комментарием: JENKINS-27456

Существует связанный тянуть запрос: PR on github

Я буду видеть, если у меня есть время, чтобы получить и протестировать сборку с этот патч и сообщит вам, разрешит ли он эту проблему.

+0

Можете ли вы предоставить пример кода здесь. – Ajit

+0

Все еще работает над ним (не полный рабочий день). Я заметил, что «adb connect» возвращает «подключен» после того, как он открыл сокет и отправил его запрос «CNXN», но до получения ответа «CNXN». Затем, если перед этим выполняется следующая команда adb, она терпит неудачу. Но я не знаю, почему этот ответ когда-то наступает сразу, а иногда и через 5-6 секунд. Исследуя. Я опубликую обновления (и отправлю PR, если это необходимо), как только у меня есть что-то интересное, чтобы сообщить –

+0

Итак, у меня есть возможность иметь плагин с чем-то еще, чем «устройство в автономном режиме», немного изменив плагин эмулятора и добавив «Thread» .sleep (10 * 1000) "после команды adb connect. Но в этот момент эмулятор получает статус «running» для bootanim и ожидает «остановленный» статус. –

Смежные вопросы