说来惭愧,本人虽然用MyEclipse已经相当熟练,却从来都不会用debug调试应用程序。Debug可是说是MyEclipse中一个相当重要的功能,今天就来说说在MyEclipse中怎么用debug功能调试程序。
Debug中常用的3个快捷键是F5、F6、F7,这3个快捷键的意思是:
●F5:在MyEclipse切换到debug视图时图标为,为单步测试,作用是跳入,比如说一大步中分为10小步,单击F5一次就会走完一小步,走完这一大步则需要单步10次。
●F6:在MyEclipse切换到debug视图时图标为,与F5一样也是单步测试。只不过与F5不同的是F5追求的是过程,而F6追求的是结果。如果一大步中分为10小步,单击F6一次就可以得到最后一步的结果.
●F7:在MyEclipse切换到debug视图时图标为,作用是跳出函数。比如当我们调试时进入了某个jar包中的类,我们可以单击F7跳出此类。
下面开始学习dedug旅程。
首先做一个有bug的加法计算器,界面如下所示:
代码清单如下所示:
●Strings.xml中的代码如下所示:
<?xml version="1.0"encoding="utf-8"?> <resources> <string name="app_name">Debug测试</string> <string name="add">+</string> <string name="equ">=</string> <string name="call">计算</string> </resources>
● Main.xml中的代码如下所示:
<?xml version="1.0"encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <EditText android:id="@+id/num1" android:layout_width="50px" android:layout_height="wrap_content" android:numeric="decimal"> <requestFocus /> </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/add" /> <EditText android:id="@+id/num2" android:layout_width="50px" android:numeric="decimal" android:layout_height="wrap_content"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/equ" /> <EditText android:id="@+id/result" android:layout_width="50px" android:focusable="false" android:layout_height="wrap_content"/> <Button android:id="@+id/callButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/call" /> </LinearLayout>
●Activity类中的代码如下所示:
packagecom.yqsn.test; importandroid.app.Activity; importandroid.os.Bundle; importandroid.view.View; importandroid.widget.Button; importandroid.widget.EditText; importandroid.widget.TextView; public classTestDebugActivity extends Activity { /** Called when the activity is firstcreated. */ private EditText numText1; private EditText numText2; private TextView sumText; private Button callButton; @Override public void onCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); numText1=(EditText)findViewById(R.id.num1); numText2=(EditText)findViewById(R.id.num2); callButton=(Button)findViewById(R.id.callButton); callButton.setOnClickListener(newView.OnClickListener() { @Override public void onClick(View v){ // TODOAuto-generated method stub StringnumText1Str=numText1.getText().toString(); StringnumText2Str=numText2.getText().toString(); float result=Float.parseFloat(numText1Str)+Float.parseFloat(numText2Str); sumText.setText(""+result); } }); } }
运行此计算器,界面如上所示,当我们输入数值后单击“计算”后出现bug了,如下所示:
我们分析可以看出我们是在输入数值点击“计算”按钮后出现问题的,分析代码,我们可以猜想出可能是我们在方法在中执行“单击侦听器”即setOnClickListener()方法时出错了。
我们在程序中String numText1Str=numText1.getText().toString();此行打断点。然后对着项目右键选择Debug As--> Android Application
然后当程序在android模拟器中运行起来后输入数值点击“计算”按钮后会自动切换到MyEclipse,弹出如下所示的对话框:
点击“Yes”MyEclipse将自动切换到debug视图并且光标在打断点的那一行,我们对着numText1Str变量双击,然后单击右键,选择Wath,如下所示:
然后我们会在右上方的Expressions中看到刚才单击的那个变量。numText2Str,result,sumText进行相同的操作。
接下来让光标回到打断点的那一行,先单击F5,在单击F6,那么背景为绿色的则跳转到下一行,稍等片刻,我们在看看Expressions里的numText1Str列出了我们输入的数值。对另外3个进行相同的操作,我们可以看出sumText的值为null
可以看出我们没有为sumText对象赋值。解决的办法是在程序中加入一句:
sumText=(TextView) findViewById(R.id.result);
就可以,不用debug模式运行程序,当我们输入数值后可以计算得到结果了:
就这样我们用debug解决了一个问题,我想我以后会用debug调试程序了,嘿…
这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7462719,谢谢~