安卓调试,怎么做?

3

好的,我终于把我的应用程序拼凑起足够多的工作部件,但现在它就是老老实实地拒绝做任何事情。我知道如何使用logcat,但仅限于此。

目前的主要问题是我遇到了错误

HistoryRecord的Activity空闲超时,然后是我的包

我需要学习如何进行更好的调试。如果有人能建议我为这个错误做些什么,请告诉我。 我认为这与与数据库的交互有关。

谢谢

编辑:

你使用的是哪个IDE? Eclipse和Android工具配合使用具有相当不错的调试功能; 设置断点并进行调试。

我正在使用Eclipse 我知道断点,但不知道它们的真正用途。我应该在哪里为这个错误设置它们?

我习惯于PHP,在那里错误会告诉你特定的行,有没有办法在Eclipse中做到这一点?


你使用哪个集成开发环境(IDE)?Eclipse与Android工具具有相当不错的调试功能;设置断点并进行调试。 - Seva Alekseyev
@Seva Aleseyev 编辑了主贴以回答。 - Somk
我不确定调试器在这种情况下能提供多少帮助。可能某些组件(服务、接收器等)正在使用一些长时间运行的操作阻塞主线程。 - bigstones
2个回答

3
在Eclipse中,如果您在代码旁边的空白处右键单击(最简单的起点可能是 onCreate 方法),您可以选择切换断点。这将在该位置设置一个断点。
现在,在Eclipse中选择运行->调试为->Android应用程序。
这将在模拟器中运行您的应用程序,并且您的应用程序会在断点处停止运行。此时,您可以使用F6逐行查看代码。
一旦您触发了断点并且代码暂停,使用像这样的指南http://www.ibm.com/developerworks/library/os-ecbug/,它将突出显示您可以在那个点做的所有不同的事情。

0

Max... 如果你可以在有问题的代码行上加 try catch,那么你就可以记录异常或在异常处设置断点。所以对于下面会抛出异常的代码:

String test= null;
try {
 test.length();
}
catch (Exception e) {
    Log.d(TAG,"test",e);
}

LogCat 会显示 test,java.lang.NullPointerException 等等。

或者您可以在 Log.d 行设置断点,如果在 DEBUG 模式下触发,则应用程序将暂停,DEBUG 视图中的变量窗口将显示:

this:MyApp e:NullPointerException

但是它似乎不像你的应用程序抛出异常,而是在数据库调用超时。我建议先将数据库调用存根化,看看超时是否消失。然后逐步添加代码,直到它再次超时。

JAL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接