我知道有LogCat视图可以检查记录的消息,但我无法理解它。
在调试时(我主要使用Java)我已经习惯于逐步遍历每行代码,找出程序崩溃的确切位置,然后对它做些什么。
如何使用Android开发执行此操作?有没有办法精确定位导致应用程序崩溃的行?
我无法理解如何阅读/如何阅读LogCat消息,当我尝试跳过时(使用Eclipse中的F9键或“调试”选项)它会一直打开内置类文件的新选项卡(如Instrumentation.class等),再次按F6几次后,应用程序崩溃显示'应用程序意外停止。请再试一次'
有人可以告诉我是否有某些事情要以我不在这里的方式完成? 谢谢!
顺便说一下,如果它有帮助,这里生成的日志: http://pastebin.com/EaqaWUdS
答案 0 :(得分:2)
您正在使用com.site.custom.ModAdapter.getView(CustomListProjectActivity.java
的第93行中不存在的资源ID- 编辑:添加解释
您将以与在Java中相同的方式读取logcat堆栈跟踪:自下而上读取,罪魁祸首是类的最后一行(在代码进入android sdk代码之前)。
你可以反过来做,从顶部开始,停在你的第一堂课并放弃Android课程。
调试时也适用相同的原因:如果需要,请进入您的方法并跳过SDK的所有方法,除非您想调试它们(通常不会,如果您真的怀疑SDK中有错误,请检查在grepcode上找到你感兴趣的android sdk类的内部机制。)
有时很难跟踪android上的bug,特别是对于widget布局相关的bug,因为你只能看到android平台执行的代码,没有执行你的代码,只有你的数据是从xml文件中读取的例如。如果这里出现问题,可能会更难调试。在这种情况下,应用二分法:删除半行,如果没有出现错误,那么读取你的行,删除其中的一半等等......
答案 1 :(得分:0)
和java一样。基本上你需要源来打开java文件而不是类文件。 Google会向您展示如何添加来源。
基本上你在自己的课程中调试android。我几乎没有查看android类,因为大多数问题当然都在我自己的课程中。
所以只需像你已经做的那样进行调试,但不要进入你不拥有的方法/类,除非你将源添加到你的sdk中。即使你有,也可能有一些不是开源的类,所以你不能进入那里的源。 (基本上所有Google API类)