如何调试Android项目

时间:2011-09-28 18:52:31

标签: android eclipse debugging ddms

我是Android框架的新手(使用Eclipse),我有一个关于调试的问题。最近我在一项活动中犯了这个错误:

// The installation button
Button button = (Button) findViewById(R.id.preparationInstallButtonID);
button.setOnClickListener(this);

setContentView(R.layout.preparation);

即。我尝试在渲染布局之前添加onclick事件。这使程序崩溃了,“抱歉,应用程序xxx意外停止了”。再次运行它,使用调试模式,Eclipse打开一个包含“Thread< 3>(Suspended)”等的Debug-window(我确定你知道我在说哪个窗口)。

现在,我如何在这里提取有用的数据?关于上面的问题,我找到了如何通过反复试验来修复它,但是假设我无法进行反复试验,调试窗口如何帮助我找到错误的来源?它说“异常RuntimeException”,但我没有看到任何关于我的代码中发生异常的指针。

3 个答案:

答案 0 :(得分:3)

如果你想调试: 右键单击您想要调试的部分代码(在行号)。选择Toggle Breakpoint。

enter image description here

您可以在行号旁边看到小圆圈,即断点。

enter image description here

然后,进行运行配置,单击运行图标旁边的小箭头,然后单击“运行配置..”

enter image description here

单击android应用程序,您将看到此对话框窗口:

enter image description here

阅读它,“突出显示”这个:'按新按钮创建所选类型的配置'。单击选项卡上方的“新建”按钮,您将看到此对话框:

enter image description here

填写它,浏览你的项目,

enter image description here

例如,我添加了Scrumptious项目,并启动默认活动。单击Target选项卡,选择Your emulator。如果要在物理设备上运行,请单击“始终提示选择设备”。我这次在物理设备上运行,

enter image description here

用于“公共”选项卡,如果可能您要在“收藏夹”菜单中选中“调试”或“运行”选项。这是可选的。点击“应用”。

enter image description here

单击调试图标 - 然后选择您的项目。如果在“收藏夹”菜单中的“显示”上激活“调试”,项目将显示在调试选项菜单中。

enter image description here

我选择“始终提示选择设备”,此对话框将会显示。我想在物理设备上运行,因此我在“选择正在运行的Android设备”中单击该设备,然后单击“确定”。您也可以在模拟器上运行。只需单击您的模拟器,然后单击“确定”。

enter image description here

如果eclipse确认开放视角,请选择是

enter image description here

然后,如果您想知道变量的值是什么,只需将鼠标放在变量的实例上,或者您可以在Debug透视图中浏览'Variables'窗口。

enter image description here

答案 1 :(得分:2)

使用LogCat,它将为您提供错误消息以及您的testdevice / emulator中发生的所有其他信息。

窗口 - >显示视图 - >其他 - > logcat的

答案 2 :(得分:1)

我强烈推荐这个关于调试的教程。

http://www.vogella.com/articles/EclipseDebugging/article.html

它将引导您完成Eclipse在该部门提供的所有功能,非常值得花时间。

就可能有帮助的特殊技巧而言,设置断点可能是有用的(即,点击代码的左边距以显示其中一个蓝色针脚)。然后,当在调试中运行时,您可以停止附近发生问题,然后前进,逐步击败,使用“步入”,“前进”和“步骤返回”命令调试窗口的顶部。当你以这种方式踩着代码时,你可能会打开变量窗口,这样你就可以看到它们应该以什么方式设置,等等。

或者,你可以在RuntimeException上设置一个断点(即使是一个被捕获的断点),通过点击debug中的Breakpoints窗口,然后舔“J!”按钮(鼠标悬停文本显示“添加Java异常断点”。

调试视图也可以让你做其他很酷的事情,比如:

  • 让您设置“观察点”,以便查看应用程序何时更改相关字段等。
  • “Drop to frame”,这样您就可以在中间启动应用。
  • 设置步骤过滤器,以便更有效地完成前面提到的“步进”。
  • 创建一个详细的格式化程序,一段java代码片段,用于格式化字段的输出,以便您可以在调试器中更清晰地查看它。
  • 还有更多!

同样,我推荐上面引用的教程。欢迎来到精彩的调试世界。