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 上运行 jenkins。

4

1 回答 1

7

错误“SDL 初始化失败,原因是:没有可用的视频设备”表明模拟器没有在图形环境中运行。

但是,您的日志显示正在启动 VNC服务器。但在模拟器启动时,VNC 服务器可能还没有完全启动。

您可以通过将模拟器启动延迟几秒钟来检查是否是这种情况。

来自Android Emulator 插件文档

尽管 Android Emulator 插件旨在确保它始终在 Xvnc 服务器启动后运行,但 Xvnc 插件不会等待 Xvnc 服务器完全启动并运行,然后再将控制权交给 Android Emulator 插件。

出于这个原因,您可能希望将模拟器启动延迟几秒钟(例如 3 到 5 秒),让 Xvnc 服务器有时间完成启动,然后再尝试将 Android 模拟器启动到其中。为此,请在“高级”选项下的“启动延迟”字段中输入所需的秒数。


或者,您可以取消选中作业配置中的“显示模拟器窗口”选项,该选项不会显示模拟器,并且无需运行 VNC 服务器。

于 2013-11-13T16:33:25.213 回答