5

Jenkins がエミュレーターを起動できません。ジェンキンスのコンソール出力は次のとおりです。

First time build. Skipping changelog.
Starting xvnc
[MatchMaking] $ vncserver :65 -localhost -nolisten tcp

New 'veam:65 (jenkins)' desktop is veam:65

Starting applications specified in /var/lib/jenkins/.vnc/xstartup
Log file is /var/lib/jenkins/.vnc/veam:65.log

$ /usr/local/android-sdk/tools/android list target
[android] Using Android SDK: /usr/local/android-sdk
[android] Adding 256M SD card to AVD 'hudson_en-US_160_WXGA720_android-15_x86'...
$ /usr/local/android-sdk/platform-tools/adb start-server
$ /usr/local/android-sdk/tools/emulator -snapshot-list -no-window -avd hudson_en-US_160_WXGA720_android-15_x86
[android] Starting Android emulator and creating initial snapshot
[android] Erasing existing emulator data...
$ /usr/local/android-sdk/tools/emulator -no-boot-anim -ports 60491,34583 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_WXGA720_android-15_x86 -no-snapshot-load -no-snapshot-save -wipe-data
SDL init failure, reason is: No available video device
* daemon not running. starting it now on port 39546 *
* daemon started successfully *
[android] Emulator did not appear to start; giving up
$ /usr/local/android-sdk/platform-tools/adb disconnect localhost:34583
[android] Stopping Android emulator
$ /usr/local/android-sdk/platform-tools/adb kill-server
Terminating xvnc.
$ vncserver -kill :65
Killing Xvnc4 process ID 16861
Finished: NOT_BUILT

入力すると

/usr/local/android-sdk/tools/emulator -snapshot-list -no-window -avd hudson_en-US_160_WXGA720_android-15_x86

また

/usr/local/android-sdk/tools/emulator -no-boot-anim -ports 60491,34583 -prop persist.sys.language=en -prop persist.sys.country=US -avd hudson_en-US_160_WXGA720_android-15_x86 -no-snapshot-load -no-snapshot-save -wipe-data

私は得る

PANIC: Could not open: hudson_en-US_160_WXGA720_android-15_x86

ubuntu 12.04でジェンキンスを実行しています。

4

1 に答える 1

7

「SDL init failure, reason is: No available video device」というエラーは、エミュレータがグラフィカル環境で実行されていないことを示しています。

ただし、ログには、VNC サーバー開始されていることが示されています。しかし、エミュレーターが起動するまでに VNC サーバーの起動が完了していない可能性があります。

エミュレータの起動を数秒遅らせることで、これが事実であるかどうかを確認できます。

Android Emulator プラグインのドキュメントから:

Android Emulator プラグインは、Xvnc サーバーの起動後に常に実行されるように設計されていますが、Xvnc プラグインは、制御を Android Emulator プラグインに渡す前に、Xvnc サーバーが完全に稼働するまで待機しません。

このため、エミュレーターの起動を数秒 (3 ~ 5 秒など) 遅らせて、Xvnc サーバーに Android エミュレーターの起動を試みる前に起動を完了する時間を与えることができます。これを行うには、[詳細設定] オプションの下の [起動遅延] フィールドに目的の秒数を入力します。


または、ジョブ構成で [エミュレーター ウィンドウを表示] オプションのチェックを外すこともできます。これにより、エミュレーターが表示されなくなり、VNC サーバーを実行する必要がなくなります。

于 2013-11-13T16:33:25.213 に答える