尝试使用模拟器运行CI服务器

时间:2016-05-25 13:08:43

标签: android android-emulator

有没有人设法使用模拟器构建稳定的CI服务器?我昨天的大部分时间都花在了它身上。 我在Windows 8.1内的VirtualBox内的Cor​​e 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一直都是问题所在。

1 个答案:

答案 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>