2015-05-06 13 views
6

Mam zainstalowany plugin Androida Emulator dla Jenkins. Mogę zbudować i przetestować projekt Android. My Jenkins działa na serwerze Ubuntu (dostęp tylko z terminalem). Projekt został pobrany z Github. Teraz chcę użyć emulatora. To jest moja konfiguracja:Emulator Androida na Jenkins error: urządzenie offline

  • Android w wersji OS 4.4
  • gęstość ekranu: 160
  • Rozdzielczość ekranu: 480x800
  • docelowa ABI: armeabi-v7a

ja również zainstalowane ADB i wykonano następującą komendę:

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

Ale to nie działa:

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

Czy jest ktoś z wyjaśnieniem tego problemu? Dzięki

+0

Zobacz także http://stackoverflow.com/questions/23699433/android-emulator-jenkins-plugin-not-working –

Odpowiedz

1

Mam do czynienia z tym samym problemem, nawet przy ręcznym wypróbowywaniu poleceń. Ale mogę rozwiązać ten problem przy użyciu portów jak 5555,5556 według tego komentarza: JENKINS-27456

Jest związany wyciągnąć wniosek: PR on github

będę sprawdzić, czy mam czas na zdobycie i przetestowanie budować z tę poprawkę i poinformuje Cię, czy rozwiązuje ten problem.

+0

Czy możesz podać tutaj przykład kodu? – Ajit

+0

Nadal nad nim pracuję (nie na pełny etat). Zauważyłem, że "adb connect" zwraca "podłączony" po otwarciu gniazda i wysłaniu żądania "CNXN", ale przed odebraniem odpowiedzi "CNXN". Następnie, jeśli następne polecenie adb zostanie wykonane wcześniej, nie powiedzie się. Ale nie wiem, dlaczego ta odpowiedź przychodzi od razu, a czasem po 5-6 sekundach. Dochodzenie. Będę publikował aktualizacje (i zgłaszam PR, jeśli to konieczne), gdy tylko będę miał coś interesującego do zgłoszenia –

+0

Tak więc udaje mi się mieć wtyczkę do czegoś innego niż "urządzenie offline", zmieniając nieco wtyczkę emulatora i dodając "Wątek .sleep (10 * 1000) "po komendzie adb connect. Ale w tym momencie emulator uzyskuje status "działa" dla bootanim i oczekuje statusu "zatrzymanego". –