如何利用eclipse和一些调试技巧来找到程序错误所在和从模拟器里面导出文件或者导入文件等

   如何利用eclipse和一些调试技巧来找到程序错误所在和从模拟器里面导出文件或者导入文件呢

1 DDMS使用

想把DDMS 里面的LogCat添加的这个

的这个部分

可以这样:

Window----->show  view 里面找到相应的LogCat添加进去

有几个地方比较重要

1)  就是LogCat,,就是显示手机或模拟器运行显示出来的日志。日志非常多,有这么几个级别,

D---->debug  W----->warn     E----->error   另外两个是 V----->verbose (消息列表)     I----->info

点击E,会出现错误级别的信息的一个列表

点击,会显示WE级别的信息

点击I,会显示IWE的信息

点击D,会显示D,I,W,E的信息

点击会显示全部信息

当看全部信息的时候,会非常的不方便,可以加上一些过滤器,所谓的过滤器就是从调试信息中过滤出我们想要的东西。点击那个+号,即create  Filter  添加过滤器

Filter Name 可以自己起,

by Log Tag  就是你想显示内容的标志,比如你想要的是输出信息,标志是system.out

by pid这个不用写

最后一个级别总共有4个,如果写none 会全部显示出来

这是一个方法,比如你想判断一个函数运行没有,你可以在这个函数里面输入一下语句,比如 system.out.println(“bakg------------------------”);然后在你的那个过滤器里面看有没有这个输出语句

2File  Explorer  文件浏览器

在这个里面的这里从(模拟器或手机)虚拟机里面放入文件,或者从(模拟器或手机虚拟机里面取出文件,比如MP3,需要放入一些歌曲文件,可以从这里放文件或取文件

常见程序调试方法

1)如果运行程序出错了,出现异常,可以去DDMS里面去查看LogCat里面,点击E,会出现错误信息,去查看错误信息中自己写的包,通常其他错误都是因为它而产生的,比如这个

06-13 07:51:43.643: ERROR/AndroidRuntime(2238): java.lang.NullPointerException

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at lysqlite3.SQLiteActivity$CreateListener.onClick(SQLiteActivity.java:43)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.View.performClick(View.java:2344)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.View.onTouchEvent(View.java:4133)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.widget.TextView.onTouchEvent(TextView.java:6510)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.View.dispatchTouchEvent(View.java:3672)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1712)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1202)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.app.Activity.dispatchTouchEvent(Activity.java:1987)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1696)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.os.Handler.dispatchMessage(Handler.java:99)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.os.Looper.loop(Looper.java:123)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at android.app.ActivityThread.main(ActivityThread.java:4203)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at java.lang.reflect.Method.invokeNative(Native Method)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at java.lang.reflect.Method.invoke(Method.java:521)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)

06-13 07:51:43.643: ERROR/AndroidRuntime(2238):     at dalvik.system.NativeStart.main(Native Method)

06-13 07:51:43.664: ERROR/dalvikvm(2238): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

这个里面,比如这个at   android.app.ActivityThread.main这种以android开头的都是android系统的包,com开头的也不是自己写的,dalvik开头的是虚拟机的,你就去找是自己写的包的那个地方,通常其他错误都是由这个包的错误引起的,通常就是代码出错的地方

2

android程序中可以用system.out.print语句输出一些标志性语句,但是android中还有一个功能更强大的输出语句,Log.d(tagmsg)

Log.e(tagmsg)等等 Log的语句

但是在为Log建立过滤器时,需要注意,这个过滤器的 by Log Tag 必须和Log的第一个参数tag相同,Filter Name  是自己随意起名字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值