Android:请提供更多描述性错误!

时间:2011-01-23 18:56:18

标签: android

我正在使用Eclipse。

我正在努力调试我的第一个(非常简单的)Android应用程序。

当我遇到错误时,我没有得到一个错误描述的正确异常,我在调试日志上得到一个询问源代码和“Suspended(Exception RuntimeException)”的屏幕。

我正在尝试记录每一行以查看最后一个执行点的位置,然后通过谷歌搜索来了解为什么以下行会导致错误。

查看我的屏幕截图:ErrorMissing Source

突出显示的行:

SimpleCursorAdapter scaSights = new SimpleCursorAdapter(this,R.layout.sight_row,sightsCursor,fromDisplayFields,toDataFields);

是异常发生的地方。我不知道那里有什么问题,但是一个好的异常消息会有所帮助,而不是源代码的提示。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

它正在发生,因为你正在追踪的一行上有一个异常,你现在正在追踪引发异常的SDK类。这是正常的和预期的,虽然不是非常有用。当发生这种情况时,除了“播放”调试器并查看logcat日志以查看异常堆栈跟踪之外,没有什么可以做的。

如果你想在调试器中看到异常,你可以在块周围放置一个try {...} catch(Throwable t),然后在catch中设置一个断点并检查异常,以及你的状态其他对象。

答案 1 :(得分:1)

logcat通常会打印任何未捕获的异常。查看日志的另一种方法是使用try-catch包围该代码,然后打印错误消息和/或堆栈跟踪。

答案 2 :(得分:1)

嗯。从我在wtf.jpg图片中可以看到,第86行似乎不是堆栈跟踪的一部分,所以我不知道它是否导致了问题。

有助于调试的一些注意事项:

  • 您可以引入断点(例如第71行)并逐步执行代码(按Step Over图标)
  • 如果你想要一步一步 你编写和调用的函数,按 Step Into图标
  • 如果您尝试单步执行其中一个Android功能(您没有写入),您将看到Source not Found错误。这并不意味着此处发生错误
  • 您可以尝试设置2个断点(比如第71和第90行),当您点击第一个断点时,按下恢复图标 - 它会一直运行直到达到第二个断点。如果它没有崩溃,那么你可以确定这里没有发生错误。
  • 您只能通过按红色(E)按钮将logcat过滤为错误消息。按(V)按钮返回。