logcat就是程序输出的日志
Android开发调试时logcat不显示问题,网上很多解决方法,但是很多将log级别的,用法的,更多的是如何在logcat中设置filter进行log的过滤与查看,但是我遇到的问题是,模拟器怎么着都OK,但真机、手机进行开发调试的时候却看不到log信息,这是很恼人的事情(毕竟模拟器跑起来太慢了)。
刚开始就用trycatch把exception打到一个alertdialog中,但是这样只能看个大概,绕这个圈子没用,最后还是在论坛上看到了解决办法,恐怕原因是rom本身没有打开log的开关
问题表现:连接手机与电脑后,驱动安装正确,USB调试模式打开,在DDMS中可以看到device及其进程的信息,但是logcat中就是没有信息输出
问题原因:一些rom默认关闭logcat
问题说明:ddms中设备名字显示为问号不影响,即adbget-serialno显示为问号不影响.
解决方法:
1.需要root权限(部分rom不需要)
2.打开logcat,并设置level,执行命令如下(android升级之后adb在platform-tools中,不在tools中)
adbshell
echo1>/sys/kernel/logger/log_main/enable
说明:将1写入日志开关文件,1为开,0为关
echo2>/sys/kernel/logger/log_main/priority
说明:将代表level的2写入优先级文件
3.重启adb,如果使用eclipse,先关闭eclipse,再重启adb,再启动eclipse
adbkill-server
adbstart-server
4.此时logcat应该可以工作了,如果仍旧不工作,则更新adb
androidupdateadb
5.重复第三步,此时logcat应该可以工作了,如果仍旧不工作,找到个人主目录下的android目录,如C:\DocumentsandSettings\Administrator\.android
找到这个目录下的adb_usb.ini文件,其内容默认只有三行,全为注释,在后面添加一行,内容为0x12d1
6.重复第三步,此时logcat应该可以工作了
在这里面选择点击的应用,即可查看想看应用的log
在图片中标1是设置log优先级,标2的地方可以搜索log中的关键字
用法一:可以查看错误信息,比如空指针异常等
用法二:可以用LOG.i();将内容输出到logcat,可以查看变量值。
可以在输定studio中直接打开一个DDMS看,这个就和eclipse一样了。 当然直接命令行用adb logcat可定制性更强。
感觉AS的logcat比eclipse的难用太多,NoFilter模式打印的信息太多,看不过来,