繁体   English   中英

如何调试Android项目

[英]How to debug Android project

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

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

setContentView(R.layout.preparation);

即我试图添加一个onclick事件之前呈现的布局。 这使程序崩溃,“对不起,应用程序xxx意外停止”。 Eclipse在调试模式下再次运行它,Eclipse打开一个调试窗口,其中包含“ Thread <3>(Suspended)”等(我确定您知道我在谈论哪个窗口)。

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

如果要调试:右键单击要调试的代码部分(在行号处)。 选择“切换断点”。

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

填充它,浏览您的项目,

在此处输入图片说明

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

在此处输入图片说明

对于“通用”选项卡,如果您想在“收藏夹”菜单中选择“调试”或“运行”选项,请选中“显示”。 它是可选的。 单击应用。

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

如果日食确认打开透视图,请选择是

在此处输入图片说明

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

在此处输入图片说明

使用LogCat,这将为您提供错误消息以及测试设备/仿真器中发生的所有其他情况。

窗口->显示视图->其他-> LogCat

我强烈建议您在一般情况下进行调试。

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

它带您了解Eclipse在该部门提供的所有功能,并且值得您花时间。

就可能有用的特定技巧而言,设置断点可能很有用(即,单击代码的左边距以使那些蓝色针脚出现)。 然后,在调试中运行时,您可以在出现问题的地方附近停下来,并使用调试窗口顶部的“逐步进入”,“逐步向前”和“逐步返回”命令一步一步地前进。 当您以这种方式遍历代码时,可能会打开变量窗口,以便可以看到以应有的方式设置的内容,等等。

另外,您可以通过在debug中单击Breakpoints窗口,然后单击“ J!”,在RuntimeException上设置一个断点(甚至捕获一个断点)。 按钮(鼠标悬停文本显示“添加Java异常断点”。

调试视图还可以让您做其他很酷的事情,例如:

  • 让您设置“观察点”,以便您可以看到应用程序何时更改相关字段等。
  • “拖放到框架”,以便您可以在中间启动应用程序。
  • 设置步进过滤器,以便可以更有效地完成我前面提到的“步进”操作。
  • 创建一个详细信息格式化程序,这是一段Java代码片段,用于格式化字段的输出,以便您可以在调试器中更清晰地查看它。
  • 以及更多!

同样,我建议上面参考的教程。 欢迎来到调试的美好世界。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM