我想通过Jenkins测试我们的Android应用程序。我配置了所有内容,但是我收到了此错误消息:
[android]模拟器似乎没有开始;放弃
我从here
找到了解决此问题的方法这可能有几个原因。其中一个列在下面的错误中。我自己没有遇到过这个问题,但我在寻找解决我特定问题的方法时已经阅读了stackoverflow。它似乎与android sdk工具的修订有关。在Windows上有一个类似于此票证中所述的修复:https://issues.jenkins-ci.org/browse/JENKINS-10815 但是在linux上似乎还有一个类似的问题尚未修复(至少票证仍然是开放的):https://issues.jenkins-ci.org/browse/JENKINS-14901
解决方案:该故障单中建议的解决方案是使用名称模拟器(返回原始)创建一个指向相应模拟器-X bin的链接。
我尝试了它并解决了我们的问题,但只有一些构建,之后我又得到了这个消息。这就是为什么我删除了android插件并删除了sdk文件夹,所以我重新安装了一切。之后有4个成功构建。 (有趣的是,我没有像以前那样创建模拟器链接)但是一切都是,问题得到了支持。我玩配置并为模拟器启动设置30秒延迟并检查“构建后删除模拟器”选项。我认为问题解决了,因为我有14个!!!成功建立,但问题再次得到支持:( 现在还有一条新的错误消息:
NAND:无法写入文件/ tmp / android-jenkins / emulator-CaWkYU,文件存在 [android]模拟器似乎没有开始;放弃
你在想什么,问题是什么?同样的设置有时成功,有时不成功。为什么?
答案 0 :(得分:3)
最后我在源代码中发现了问题: AndroidEmulator.java
adb连接超时为1分钟并且已修复:
private static final int ADB_CONNECT_TIMEOUT_MS = 60 * 1000;
所以我把它增加到5分钟,构建一个新的插件并安装它解决了我的问题(~100版没有这个问题)
答案 1 :(得分:2)
你有多少个构建执行程序(默认为2)?我打赌你一次只能在你的Jenkins服务器上运行一个模拟器,当两个工作正在尝试执行时,一个工作正在被破坏。如果是这种情况,您可能需要考虑Heavy Build plugin在Android作业过程中锁定所有执行程序。或者使用奴隶。
答案 2 :(得分:0)
您可以查看已修复此问题的pull request。在将PR合并到主仓库并获得新的插件版本之前,只需从作者的分叉仓库和运行命令下载项目:
mvn install
从项目根目录。之后采取" android-emulator.hpi"文件位于
"<project root>/target"
来自Jenkins Web UI的目录和更新/安装插件
Manage Jenkins -> Manage Plugins -> Advanced
然后重启Jenkins CI。在项目配置中使用选项
"Build Environment" -> "Common Emulator Options" -> "Advanced" -> "Adb timeout"
例如,将其设置为300秒。