Android模拟器Jenkins插件无法正常工作

时间:2014-05-16 15:43:55

标签: android jenkins emulation

我正在尝试使用带有Cloudbees的Jenkins Android模拟器,我经常遇到这种输出:

error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
$ /opt/android/android-sdk-linux/platform-tools/adb -s localhost:44194 shell getprop dev.bootcomplete
error: device offline
$ /opt/android/android-sdk-linux/platform-tools/adb connect localhost:44194
[android] Timed-out after waiting 720 seconds for emulator
$ /opt/android/android-sdk-linux/platform-tools/adb disconnect localhost:44194
[android] Stopping Android emulator
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
$ /opt/android/android-sdk-linux/platform-tools/adb kill-server
Finished: NOT_BUILT

我使用andoird-19作为目标,但我尝试了几个。 我也尝试在我的本地jenkins实例上重现这个案例,它也是一样的。

当我尝试从快照加载时,情况变得更糟:如果我不从快照开始,模拟器在50%的情况下启动,如果我使用快照,那么它总是会失败。

我使用模拟器臂作为可执行文件,因为我读到了64位版本的一些错误。不确定它是否也适用于r19。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

Jenkins Android Emulator我遇到的问题很多。这是一份帮助清单:

1)你需要android列表和android更新sdk的--all标志,否则将不会安装一些软件包:ex for SDK 24

1a)的$ANDROID_HOME/tools/android list sdk --all

1b)的

(for i in {1..100}; do echo y; sleep 1; done) |
$ANDROID_HOME/tools/android update sdk --no-ui --all --filter 
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,24,25,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,79,80,81,82,82,84,85,101,102,103,112,113,117,118,119,120,121,122,123,124

如果您遇到可怕的/home/jenkins/android-sdk-linux/platform-tools/adb -s emulator-XXXX shell getprop dev.bootcomplete error: device offline错误,则可能在步骤1b中遗漏了一个包

2)忽略可怕的Failed to Initialize backend EGL display错误,这是一个红色的鲱鱼

3)请务必使用Advanced Emulator选项:

Emulator Options: -no-audio -gpu off
Emulator executable: emulator64-arm
Startup delay: 10  -- this *may* help

4)预构建脚本${ANDROID_HOME}/platform-tools/adb kill-server不能伤害

祝你好运!

答案 1 :(得分:1)

将Android Emulator插件升级到2.11.1后,我开始遇到同样的问题。通过插件管理器降级到2.10已证明对我来说是一个可以接受的解决方法。

答案 2 :(得分:0)

遇到同样的问题,使用Jenkins Android Emulator Plugin v2.13与运行android-19及更高版本的模拟器。

我找到了一张开放的Jenkins机票来解决问题here

看起来修复需要更新Android Emulator插件。在此期间,一个解决方法是使用pre-android-19模拟器 - 我没有在android-16,android-17或android-18模拟器上遇到问题。

另一种解决方法是尝试将Android Emulator插件降级到v2.10,正如@zachgeek建议的那样。