5

我在调试代码时遇到问题。我的一个 AsyncTasks 引发了 RuntimeException,但我不知道我的代码中的哪一行对此负责。由于我通常是 Eclipse 和 Java 的新手,所有这些都让我感到困惑。

Eclipse 的调试窗口显示我的 AsyncTask 由于 RuntimeException 而被挂起。在此之下,有三行指出某些代码行。但是,我的代码中不存在这些行,这就是为什么我不知道是什么导致我的应用程序崩溃的原因。我是否遗漏了有关在 Java / Android 中进行调试的一些重要内容?

顺便说一下,这些是我得到的三行:

ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1086  
ThreadPoolExecutor$Worker.run() line: 561   
Thread.run() line: 1096 

我应该如何处理它?帮助将不胜感激。

4

3 回答 3

1

您最好使用logcat - 这将显示堆栈跟踪和引发的错误。我从来没有在单步执行代码方面取得巨大成功,DDMS但是由于 logcat 中显示的错误,通常很容易找出引发错误的原因。

如果在 Eclipse 中不可见,请参阅 Pratik 的打开 logcat 的答案。

于 2011-08-31T14:25:11.040 回答
1

如果在 ddms 中找不到 logcat,则可以在 ddms 中将与错误、警告或其他类型消息相关的消息获取到 logcat 窗口中,然后转到菜单 Window->Show View->logcat click在那里,您现在可以在同一个 ddms 中看到消息,您还可以从中获取设备窗口,选择设备,以便您可以调试或从该设备获取消息到 logcat 中。

现在检查这种方式,您可以在此 logcat 详细信息中找到您的错误详细信息

于 2011-08-31T14:12:27.053 回答
0

Rajeev 做对了——当你在异常上设置断点时,调试器会在抛出它的那一行中断,而不是在捕获它的那一行。通过这种方式,您可以看到导致异常的原因。

于 2011-11-20T22:28:29.903 回答