0

我知道有 LogCat 视图来检查记录的消息,但我无法理解它。

在调试时(我主要使用 Java),我习惯于遍历每一行代码并找出程序崩溃的确切位置,然后对其进行处理。

如何通过 Android 开发做到这一点?有没有办法精确定位导致应用程序崩溃的行?

我不明白该做什么/如何阅读 LogCat 消息,当我尝试跳过(使用 F9 键或 Eclipse 中的“调试”选项)时,它会不断打开内置类文件的新选项卡(如 Instrumentation.class等),并在再次按 F6 几次后,应用程序崩溃并显示“应用程序已意外停止。请再试一次'

有人可以告诉我是否有一些我不在这里做的事情要做吗?谢谢!

顺便说一句,如果有帮助,这是生成的日志: http: //pastebin.com/EaqaWUdS

4

2 回答 2

2

您使用的资源 id 不存在于第 93 行:com.site.custom.ModAdapter.getView(CustomListProjectActivity.java

--编辑:添加解释

您将以与在 Java 中相同的方式读取 logcat 堆栈跟踪:自下而上阅读,罪魁祸首是类的最后一行(在代码进入 android sdk 代码之前)。

你可以反过来做,从顶部开始,停在你的第一个类并丢弃 android 类。

调试时也适用相同的推理:如果需要,请进入您的方法并遍历 SDK 的所有方法,除非您想调试它们(通常您不会,如果您真的怀疑 SDK 中存在错误,请检查 grepcode 中的源代码查看您感兴趣的 android sdk 类的内部机制)。

有时很难在 android 上跟踪 bug,尤其是与 widget 布局相关的 bug,因为你只能看到 android 平台执行的代码,没有执行你的代码,只有你的数据是从 xml 文件中读取的。如果这里有问题,调试起来可能会更困难。在这种情况下,应用二分法:删除半行,如果错误没有出现,然后读取你的行,删除其中的一半,等等......

于 2012-04-12T12:53:07.920 回答
0

这和java中的一样。基本上,您需要源来打开 java 文件而不是类文件。Google 向您展示了如何添加来源。

基本上,您在自己的课程中调试 android。我几乎没有研究过 android 类,因为大多数问题当然都在我自己的类中。

因此,只需像您已经做的那样进行调试,但不要进入您不拥有的方法/类,除非您已将源添加到您的 sdk。即使你有,也可能有一些类不是开源的,所以你不能进入那里的源代码。(基本上所有 Google API 类)

于 2012-04-12T12:54:39.400 回答