如何利用eclipse和一些调试技巧来找到程序错误所在和从模拟器里面导出文件或者导入文件等
2013-06-13 16:47
531 查看
如何利用eclipse和一些调试技巧来找到程序错误所在和从模拟器里面导出文件或者导入文件呢
1 DDMS使用
想把DDMS 里面的LogCat添加的这个
![](http://img.blog.csdn.net/20130613164049640)
的这个部分
![](http://img.blog.csdn.net/20130613164129375)
可以这样:
Window----->show view 里面找到相应的LogCat添加进去
有几个地方比较重要
(1) 就是LogCat,,就是显示手机或模拟器运行显示出来的日志。日志非常多,有这么几个级别,
![](http://img.blog.csdn.net/20130613164207109)
D---->debug W----->warn E----->error 另外两个是 V----->verbose (消息列表) I----->info
点击E,会出现错误级别的信息的一个列表
点击W ,会显示W和E级别的信息
点击I,会显示I和W和E的信息
点击D,会显示D,I,W,E的信息
点击V 会显示全部信息
当看全部信息的时候,会非常的不方便,可以加上一些过滤器,所谓的过滤器就是从调试信息中过滤出我们想要的东西。点击那个+号,即create Filter 添加过滤器
![](http://img.blog.csdn.net/20130613164301640)
Filter Name 可以自己起,
by Log Tag 就是你想显示内容的标志,比如你想要的是输出信息,标志是system.out
by pid这个不用写
最后一个级别总共有4个,如果写none 会全部显示出来
这是一个方法,比如你想判断一个函数运行没有,你可以在这个函数里面输入一下语句,比如 system.out.println(“bakg------------------------”);然后在你的那个过滤器里面看有没有这个输出语句
(2)File Explorer 文件浏览器
![](http://img.blog.csdn.net/20130613164357562)
在这个里面的这里从(模拟器或手机)虚拟机里面放入文件,或者从(模拟器或手机虚拟机里面取出文件,比如MP3,需要放入一些歌曲文件,可以从这里放文件或取文件
![](http://img.blog.csdn.net/20130613164445406)
2 常见程序调试方法
(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(tag, msg)
Log.e(tag, msg)等等 Log的语句
![](http://img.blog.csdn.net/20130613164609718)
但是在为Log建立过滤器时,需要注意,这个过滤器的 by Log Tag 必须和Log的第一个参数tag相同,Filter Name 是自己随意起名字
1 DDMS使用
想把DDMS 里面的LogCat添加的这个
的这个部分
可以这样:
Window----->show view 里面找到相应的LogCat添加进去
有几个地方比较重要
(1) 就是LogCat,,就是显示手机或模拟器运行显示出来的日志。日志非常多,有这么几个级别,
D---->debug W----->warn E----->error 另外两个是 V----->verbose (消息列表) I----->info
点击E,会出现错误级别的信息的一个列表
点击W ,会显示W和E级别的信息
点击I,会显示I和W和E的信息
点击D,会显示D,I,W,E的信息
点击V 会显示全部信息
当看全部信息的时候,会非常的不方便,可以加上一些过滤器,所谓的过滤器就是从调试信息中过滤出我们想要的东西。点击那个+号,即create Filter 添加过滤器
Filter Name 可以自己起,
by Log Tag 就是你想显示内容的标志,比如你想要的是输出信息,标志是system.out
by pid这个不用写
最后一个级别总共有4个,如果写none 会全部显示出来
这是一个方法,比如你想判断一个函数运行没有,你可以在这个函数里面输入一下语句,比如 system.out.println(“bakg------------------------”);然后在你的那个过滤器里面看有没有这个输出语句
(2)File Explorer 文件浏览器
在这个里面的这里从(模拟器或手机)虚拟机里面放入文件,或者从(模拟器或手机虚拟机里面取出文件,比如MP3,需要放入一些歌曲文件,可以从这里放文件或取文件
2 常见程序调试方法
(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(tag, msg)
Log.e(tag, msg)等等 Log的语句
但是在为Log建立过滤器时,需要注意,这个过滤器的 by Log Tag 必须和Log的第一个参数tag相同,Filter Name 是自己随意起名字
相关文章推荐
- 创建好SD卡的AVD ,那如何把文件导入SD 卡里面供模拟器使用
- 【笔记】ECLIPSE 导入从MYECLIPSE导出的文件,Tomcat不能找到资源
- Eclipse使用技巧 - 4. Eclipse自动注释文件的导出和导入
- 如何在Linux文件系统里面找到非UTF-8编码的文件名的文件或者文件夹?
- android studio如何导入和运行调试unity导出的项目,并查看log日志?(或者说:android studio如何导入eclipse项目?)
- 在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?
- 如何恢复Eclipse或者Myeclipse里面删除的文件?
- 在eclipse或者myeclipse里面快速找到本地class文件
- 如何解决数据库中的字符型字段值中包含'0A'时,导出的文件用EXECEL打开时行数变多或者将结果导入数据库出错
- [转载]在SQL Server 中,如何实现DBF文件和SQL Server表之间的导入或者导出?
- 如何恢复Eclipse或者Myeclipse里面删除的文件?
- 如何解决数据库中的字符型字段值中包含'0A'时,导出的文件用EXECEL打开时行数变多或者将结果导入数据库出错
- 如何恢复Eclipse或者Myeclipse里面删除的文件?
- 如何解决数据库中的字符型字段值中包含'0A'时,导出的文件用EXECEL打开时行数变多或者将结果导入数据库出错
- 如何利用Navicat 导出和导入sql文件
- eclipse如何能快速找到某个文件夹或者文件
- eclipse导出jar包 jar包中如何导入图片和音乐等资源文件
- “无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。”
- navicat如何导入sql文件和导出sql文件
- 错误:无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。