获取"应用程序未启动(RuntimeError)"当试图在设备上运行calabash-android测试时

时间:2014-03-11 15:22:51

标签: android ruby xamarin.android calabash

我正在尝试在连接到Windows 7笔记本电脑的三星Galaxy S3上运行一小组初步的calabash-android测试,并在尝试启动测试服务器时不断获得“应用程序未启动(RuntimeError)”。

我已经安装了Ruby v1.9.3p448,RubyDevKit 4.5.2(32位),Ant 1.9.2和AnsiCon。我已经在命令提示符下键入“gem install calabash-android”安装了calabash-android 0.4.20及其所有依赖宝石。我使用Xamarin Studio和发布密钥库创建了一个签名的APK。使用--dry-run标志运行时,我正确解析了我的六个步骤的初始功能集。

当我输入“calabash-android run com.XYZ.ABC.apk --verbose时会发生以下情况:

  1. app / calabash不存在测试服务器,因此创建了一个新的测试服务器并使用与APK相同的密钥库进行签名
  2. 功能文件已成功解析。
  3. 测试服务器com.XYZ.ABC.test已成功卸载。
  4. app com.XYZ.ABC.apk已成功卸载。
  5. 已成功安装步骤1中创建的测试服务器。
  6. app com.XYZ.ABC.apk已成功安装。
  7. 测试服务器已启动。
  8. 此时我们得到“App没有启动(RuntimeError)”消息。以下是命令行中的相应详细信息。

    2014-03-11 08:10:05 - Starting test server using:
    2014-03-11 08:10:05 - "C:\Users\BMaya\AppData\Local\Android\android-sdk/platform-tools/adb.exe" -s 4df18df165d46f4d shell am instrument -e target_package com.trimble.terraflex -e main_activity trimble.tfm.fieldapp.SplashActivity -e test_server_port 7102 -e debug false -e class sh.calaba.instrumentationbackend.InstrumentationBackend com.trimble.terraflex.test/sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner
    App did not start (RuntimeError)
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:505:in `block in start_test_server_in_background'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/retriable-1.3.3.1/lib/retriable/retriable.rb:31:in `perform'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/retriable-1.3.3.1/lib/retriable/retriable.rb:53:in `retriable'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:504:in `start_test_server_in_background'
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/calabash-android-0.4.20/lib/calabash-android/operations.rb:93:in `start_test_server_in_background'
    

    我也试过从Ruby命令提示符运行测试,结果相同:

    1. 在DOS命令提示符下键入“calabash-android console com.XYZ.ABC.apk”
    2. 在Ruby命令提示符下键入“reinstall_apps”。
    3. 在Ruby命令提示符下键入“start_test_server_in_background”。
    4. 我用Google搜索并尝试了以下方法:

      1. 确保在应用清单中选择了互联网(它是) - http://bit.ly/NGK0B8
      2. 手动辞退应用(没有帮助) - http://bit.ly/NGKg2Z
      3. 卸载calabash-android 0.4.20并重新安装(没有帮助) - http://bit.ly/1dLTlBt
      4. 使用调试密钥库而不是发布密钥库(没有帮助)
      5. 签署了APK
      6. 尝试了示例应用并从控制台运行(出现相同的错误) - http://bit.ly/OhaV6zhttp://bit.ly/Ohb8GR
      7. 检查以确保端口7102未被任何其他应用程序或系统服务阻止(它不是)。
      8. 感谢任何帮助。如果您需要更多信息,请告诉我。

        提前致谢。

2 个答案:

答案 0 :(得分:5)

我遇到了同样的问题。经过几天的寻找解决方案,我发现我的机器上的代理导致了问题。检查您的计算机上是否设置了代理服务器。 如果您在Mac上,请转到终端并执行以下语句以取消设置代理 导出http_proxy =""

答案 1 :(得分:-1)

到目前为止,您可能已经找到了解决方案。我发布这个是为了帮助别人。 这些是我看到的完全相同的问题,我得到的错误就像OP一样。 我的问题是由于我使用了错误的apk文件!我在同一个文件夹中有几个不同版本的apk文件,我使用了错误的calabash-android run命令。