有没有人设法使用模拟器构建稳定的CI服务器?我昨天的大部分时间都花在了它身上。 我在Windows 8.1内的VirtualBox内的Core OS上运行的Docker容器上使用GitLab CI。现在模拟器没有启动,也没有给我任何明显的信息。当我尝试运行测试时,它只是告诉我没有正在运行的设备。 我目前的脚本是这样做的:
- echo yes | android update sdk -a --no-ui --filter android-22
- echo yes | android update sdk -a --no-ui --filter sys-img-armeabi-v7a-google_apis-22
- echo no | android create avd --name test -t 1 -c 1000M --abi "google_apis/armeabi-v7a" --force
- emulator -avd test -partition-size 2000 -no-skin -no-audio -no-window -force-32bit &
最后我跑
- ./gradlew :breathcount:connectedBetaDebugAndroidTest
它告诉我没有可用的设备,所以我在五分钟内添加了我在SO上找到的东西。
#!/bin/bash
adb wait-for-device
A=$(adb shell getprop sys.boot_completed | tr -d '\r')
while [ "$A" != "1" ]; do
sleep 2
A=$(adb shell getprop sys.boot_completed | tr -d '\r')
done
adb shell input keyevent 82
这等待了20分钟,没有找到任何设备。 现在我考虑将ADB端口转发到Docker并直接在机器上运行仿真器。 VM一直都是问题所在。
答案 0 :(得分:0)
您应该等到在运行gradle脚本之前启动模拟器。到目前为止我一直在使用的片段:
<c:choose>
<c:when test="${not empty yourControllerVar}">
<c:out value="${yourControllerVar}"/>
<div>
//your div code
</div>
</c:when>
<c:otherwise>
// do something else, without the div
</c:otherwise>
</c:choose>