我正在尝试为我的Android开发设置CI版本(Android SDK Tools V23.0.2)。这当前都在我的本地机器上运行(使用Ubuntu 14.04.1)。但是,我在让模拟器正常工作方面遇到了问题。
在Eclipse中,我可以启动模拟器,它工作正常(甚至非常快)。我唯一的小问题是截图(使用Robotium拍摄)在我关闭模拟器的“使用主机GPU”选项之前无效。
在Jenkins(V1.576)上,我使用了“Android Emulator插件”(V2.11.1),这里的乐趣开始了。首先,我可以启动模拟器,但只能使用android-15 - 对于那个以上的每个版本,模拟器似乎都没有启动。其次,模拟器比从Eclipse中启动要慢得多 - 例如,我的一个测试在Eclipse模拟器上需要1分钟,在“Jenkins”模拟器上需要3-4分钟。第三,即使没有使用“使用主机GPU”选项,屏幕截图根本不起作用。第四,我无法使用窗口启动模拟器(事实上,从长远来看,我不想这样做,但是在设置构建时看到正在发生的事情会很方便。)
我尝试使用各种插件配置(包括明确说明模拟器可执行文件,例如“emulator64-x86”),而且我也尝试重用Eclipse使用的AVD规范,但是所有人都不会帮忙。为了完整起见,我在下面附上了我的Eclipse和插件配置,但我想我的实际问题是:
如何让“Android Emulator插件”以与Eclipse启动时完全相同的方式启动模拟器?
尽管如此,我当然会对各种帮助感到高兴 - 这有点让我疯狂: - )
以下是我在Eclipse中使用的AVD配置的屏幕截图:
这是我成功启动模拟器的Jenkins输出:
[android] Using Android SDK: /home/chris/android-sdks
[android] Creating Android AVD: /var/lib/jenkins/jobs/PracticingTimer - Large Tests/workspace/.android/avd/hudson_de-DE_320_1280x768_android-15_x86.avd
[android] /home/chris/android-sdks/tools/android create avd -f -a -c 256M -s 1280x768 -n hudson_de-DE_320_1280x768_android-15_x86 -t android-15 --abi x86
[android] Setting hardware properties:
hw.ramSize: 512
vm.heapSize: 64
$ /home/chris/android-sdks/platform-tools/adb start-server
[android] Starting Android emulator
$ /home/chris/android-sdks/tools/emulator -no-boot-anim -ports 5593,5594 -prop persist.sys.language=de -prop persist.sys.country=DE -avd hudson_de-DE_320_1280x768_android-15_x86 -no-snapshot-load -no-snapshot-save -no-window
* daemon not running. starting it now on port 5595 *
* daemon started successfully *
Failed to Initialize backend EGL display
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
[android] Waiting for emulator to finish booting...
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
error: device offline
error: device offline
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
error: device offline
error: device offline
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
$ /home/chris/android-sdks/platform-tools/adb disconnect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 shell getprop dev.bootcomplete
$ /home/chris/android-sdks/platform-tools/adb -s emulator-5593 logcat -v time
$ /home/chris/android-sdks/platform-tools/adb connect emulator-5593
[android] Emulator is ready for use (took 48 seconds)
这是一些失败的“Android Emulator插件”设置(为简洁起见):
Run emulator with properties
OS: android-19
Screen density: 320
Screen resolution: 1280x768
Device locale: de_DE
SD card size: 128M
Target ABI: x86
vm.heapSize=64
hw.ramSize=512
Reset emulator at startup
Show emulator window
最后,这是由模拟器启动失败导致的Jenkins输出:
[android] Using Android SDK: /home/chris/android-sdks
[android] Setting hardware properties:
vm.heapSize: 64
hw.ramSize: 512
$ /home/chris/android-sdks/platform-tools/adb start-server
[android] Starting Android emulator
[android] Erasing existing emulator data...
$ /home/chris/android-sdks/tools/emulator -no-boot-anim -ports 5749,5750 -prop persist.sys.language=de -prop persist.sys.country=DE -avd hudson_de-DE_320_1280x768_android-19_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 5751 *
* daemon started successfully *
[android] Emulator did not appear to start; giving up
$ /home/chris/android-sdks/platform-tools/adb disconnect emulator-5749
[android] Stopping Android emulator
$ /home/chris/android-sdks/platform-tools/adb kill-server
Finished: NOT_BUILT