android.util.AndroidException:INSTRUMENTATION_FAILED

时间:2014-01-06 23:45:23

标签: android cucumber

Armandos-MacBook-Air:黄瓜armando.rodriguez $ calabash-android run m ...... apk 找不到这个app和calabash版本组合的测试服务器。重新创建测试服务器。 完成对测试服务器的签名。将其移至test_servers / 430f6c154d763823fecdda70ac84695a_0.4.18.apk 功能:登录应用

  Scenario: Successful login                             # features/login.feature:3
        as first time after 
        restart the simulator
4629 KB/s (555713 bytes in 0.117s)
4840 KB/s (665402 bytes in 0.134s)
android.util.AndroidException: INSTRUMENTATION_FAILED: com......test/sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner
    at com.android.commands.am.Am.runInstrument(Am.java:586)
    at com.android.commands.am.Am.run(Am.java:117)
    at com.android.commands.am.Am.main(Am.java:80)
    at com.android.internal.os.RuntimeInit.finishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:238)
    at dalvik.system.NativeStart.main(Native Method)
  App did not start (RuntimeError)

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这对我来说相当混乱,但最终只是因为我没有足够的信息来知道仪器失败的原因。

通过一些测试,我发现问题是安装了仪器APK,通过

验证
adb shell pm list instrumentation | grep <my.package.name>

但是没有安装仪器应该测试的软件包,通过

进行验证
adb shell pm list packages | grep <my.package.name>

问题是我正在尝试安装调试版本,而生产版本已经存在(在我的情况下,使用不同的软件包名称)在我有一个冲突的ContentProvider的设备上。这可能更像是一个边缘情况,但我想在其他情况下,calabash正试图在已经拥有相同包名的APK的设备上安装不同签名的APK。