2012-04-12 46 views
0

我知道有LogCat视图来检查记录的消息,但我无法理解它。当我调试时(我主要使用Java),我习惯于逐行检查每一行代码,找出程序崩溃的确切位置,然后做一些事情。如何在Android中成功调试?

我该如何在Android开发中做到这一点?有没有一种方法来精确定位导致应用程序崩溃的行?

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

有人能告诉我,如果有什么事情要做,我不在这里做? 谢谢!

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

回答

2

您正在使用不以行存在的资源ID:com.site.custom.ModAdapter.getView 93(CustomListProjectActivity.java

- 编辑:补充说明

你会读到以同样的方式一个logcat的堆栈跟踪您在Java做的事:阅读自下而上而罪魁祸首是你的类的最后一行(代码进入了前android sdk code)。

你可以用相反的方法做到这一点,并从顶层开始,停在你的第一类并放弃android类。

调试时适用同样的推理:如果需要,进入您的方法并跨越SDK的所有方法,除非您想调试它们(并且通常您不需要,如果您真的怀疑SDK中有bug,请检查grepcode的源代码来查看您感兴趣的android sdk类的内部机制)。

有时很难跟踪android上的错误,尤其是与小部件布局相关的错误,因为您只能看到由android平台执行的代码,没有执行代码,只有您的数据从xml读取文件为例。如果某处出现故障,可能会更难以调试。在这种情况下,应用二分法:删除半行,如果没有显示错误,然后读取你的行,删除其中的一半,等等......

0

它和java中一样。基本上你需要源代码来打开java文件,而不是类文件。 Google会向您展示如何添加来源。

基本上你在自己的课堂上调试android。我几乎没有看到android类,因为大多数问题当然都位于我自己的类中。

所以,就像你已经做的调试,但不要步入你不拥有的方法/类,除非你有源添加到你的SDK。即使你有,也可能有一些类不是开源的,所以你不能在那里进入源代码。 (基本上所有Google API类)