应用程序在模拟器中正常工作但在实际手机中失败时如何调试?

时间:2011-08-26 12:01:52

标签: android debugging

如何在应用程序在模拟器中正常运行时调试,但在某些屏幕上执行SQLite操作时强制关闭?

4 个答案:

答案 0 :(得分:3)

  1. 将手机连接到开发机器
  2. 确保模拟器未运行
  3. 打开命令提示符并运行adb logcat
  4. 在手机上使用应用程序并触发错误
  5. 在logcat输出中查看生成的堆栈跟踪
  6. 您还可以通过调试或DDMS透视图查看Eclipse中的logcat输出。

答案 1 :(得分:2)

您应该将手机连接到开发机器并查看Logcat(或使用调试器)以查看堆栈跟踪中发生的情况。您还可以在手机上安装应用程序(如CatLog)以查看日志。

答案 2 :(得分:2)

您只需连接手机并使用调试器即可。当它打开时,只需选择你的手机......你也可以使用和logcat ......

答案 3 :(得分:2)

其他人对可用的技术工具发表了评论,因此我将尝试解释我们的应用程序流程。我们的应用程序使用得非常广泛,因此我们需要考虑一些不同的设备。

  • 创建一个测试版组。有很多设备,除非你的公司有很多资金并且你有很多时间,否则不可能自己测试所有这些设备测试。让一群用户在一起,他们可以解决问题,并要求他们进行beta测试。

  • 看看有什么不同。这个看起来很明显,但令人惊讶的是,这经常会让我们失望。如果应用程序无法在某些设备上运行,那么这些设备会有什么不同?我们曾经有一个只在应用程序处于横向模式时发生的错误,所以我们主要在默认为横向模式的设备上看到它。当您尝试查找错误原因时,请问自己应用程序无法运行的方案与应用程序运行的方案之间的区别。

  • 使用可用的技术。有时候,最后两个不能解决所有问题。有时,你得到一个奇怪的边缘情况。我们有2.3个设备未实现已弃用的方法 - 即使该方法在3.0中已弃用。无论出于何种原因,他们没有实现该方法并且没有替换它就离开了我们,所以我们不得不使用向后兼容包。但是,发现这个问题的唯一原因是我们可以访问遇到错误的用户的logcat报告。故事的道德:制造商做了奇怪的事情。

你无法捕捉到一切。有太多微妙和非感性的差异。但是(特别是在进行beta测试时)你应该能够在问题发生之前捕获99.99%的问题。