Android Studio----- 无法打印---log----问题总结----华为坑深
摘要(Abstract)
必备技能,使用日志工具 LogCat,并尝试解决真机调试没有日志的问题。
日志工具(LogCat)
日志在任何项目的开发过程中都会起到非常重要的作用,在 Android 项目中如果你想要查看日志则必须要使用 LogCat 工具。
在 Android Studio 最下方的 Status Bar 中找到 6:Android,点击她。如下图
LogCat 出现了,如下图
- 这里选择 Devices,当然一般来说不需要选择,如果只连接了一个设备的话。
- 这里选择 Log level,日志级别。包括:Verbose、Debug、Info、Warn、Error、Assert。以上级别依次升高。
- 这里选择过滤器,默认会自动生成一个过滤条件是 Package name 是项目包名的过滤器。
使用 LogCat
Android 中的日志工具类是 Log(android.util.Log),提供了如下的几个方法供我们打印日志。
- Log.v() 对应 Verbose
- Log.d() 对应 Debug
- Log.i() 对应 Info
- Log.w() 对应 Warn
- Log.e() 对应 Error
- Log.wtf() 在输出日志的同时,会把此处代码此时的执行路径(调用栈)打印出来。
介绍完毕,我们来演戏一下吧。打开 HelloWorldActivity,在 onCreat()方法中添加一行打印日志的语句,为了让日志明显一点我加了一些下划线,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_hello_world);Log.d("HelloWorldActivity","______________onCreate execute______________");
}
Log.d() 方法中传入了两个参数,第一个参数是 tag,一般传入当前的类名就好,主要用于对打印信息进行过滤。第二个参数是 msg,即想要打印的具体内容。
现在重新运行一下项目,点击工具栏中的绿色小箭头,或者按 Shift+F10。等程序运行完毕,使用模拟器的战友可能已经能看到日志了,如下图
使用真机的战友,可能看到的还是空荡荡的LogCat。需要做这么一件事,菜单栏 Tools → Android → Enable ADB Integration 把这个勾上,然后再次运行。
这次应该能看到日志了吧?看看能不能找到我们想要打印出来日志信息。过滤器中一定要选中 app:com.xxxx.helloworld 哦。如果有日志,但是找不到我们想要打印的日志 HelloWorldActivity: ______________onCreate execute______________
,那么恭喜你,你用的真机貌似跟我的一样比较高端,是不是有什么黑科技。
我们来尝试解决这个问题。
- 手机的开发人员选项打开了么,其中的 USB 调试打开了么?搞定他们并重新运行,是否能找到我们的日志?否,转到 2。
- 日志中是否有这样
could not disable core file generation for pid 3963: Operation not permitted
的信息么? 是,转到 3;否,那我也不知道怎么搞,或者你可以把日志贴到评论中我看看。 - 是华为手机么?是,转到 4;否,你可以参考 4 自己 Google Baidu 一下。
- 在拨号界面输入:
*#*#2846579#*#*
进入测试菜单界面,然后
Project Menu → 后台设置 → LOG设置
LOG 开关 → LOG 打开 LOG 级别设置 → VERBOSE
Dump&Log → 全部选中
重启手机,重启 Android Studio。
PS:根据系统版本的不同,可能会有些许差异。
重启完毕,打开 Android Studio,运行项目,这下应该能找到我们的日志了。如果还没找到,对不起洗洗睡吧,我只能帮到这儿了。(或者你可以换个手机)
定制过滤器(Filter)
点击过滤器那个下拉框,选择 Edit Filter Configuration,在弹出的对话框中点击左上角的加号新创建一个 Filter。如下图
含义如下:
- Name:Filter 名称
- by Log Tag: 通过日志的 tag 过滤
- by Log Message:通过日志的 msg 内容过滤
- by Package Name:通过包名过滤
- by PID:通过PID过滤
- by Log Level:通过日志等级过滤
- regex:表示可以使用正则表达式进行匹配
以上过滤条件可以组合。
我建了一个data的过滤器,过滤条件是 tag 等于 data。将 Filter 选择为 data,我们的日志不见了,因为匹配不到 tag 等于 data 的日志。
现在去把我们在 onCreate() 方法中的日志的 tag 改为 data。如下所示:
Log.d("data","______________onCreate execute______________");
然后重新运行,将 Filter 选择为 data,我们的日志出现了。当然还可能会有一些奇奇怪怪的日志也出现了,仔细看看 tag 中都包含有 data。
抑制不住的好奇心
看看这个 Android Studio 最下方的 Status Bar,我们找到 LogCat 的地方,如下图
难道你们不好奇为什么 Android 前面有个 6 么?难道是因为用了 LogCat 你的 Android 开发水平就会 666666666?
不管发生什么事件,我相信真相只有一个,如下图:
OK,收工了。
Android Studio----- 无法打印---log----问题总结----华为坑深相关推荐
- android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法
Mac 下 Android Studio 不打印日志的解决办法 Mac 下 Android Studio 不打印日志的解决办法 前言: 在 Mac 下使用 Android Studio 时常会遇到 A ...
- Android Studio项目手机模拟测试(华为荣耀系列)
打开手机搜索 '开发者选项' 或者 '开发人员选项' : 找到"选择USB配置",改为MTP(多媒体传输): 打开usb调试: 以上部分顺序不可变化,执行完用usb线连接到计算机: ...
- Android Studio 插件开发详解四:填坑
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...
- 在Android NDK下打印log
在Android Studio NDK中打印log 示例 // 导入必须的android/log.h头文件 #include <android/log.h>// 可选.定义方便使用的宏 # ...
- Android中日志打印 Log的使用
文章目录 Log等级划分 Log使用规范 Android Studio中log使用 Logcat中选择筛选条件 Log信息颜色设置 Log信息说明 写一份便于使用的Log辅助类 Log等级划分 Log ...
- android studio漫画,Android Studio 3.0 更新Gradle 插件填坑
一.Java8确实快了 为了提升编译速度,这几天用上了 AS 3.0 和 Gradle 3.0 插件,不得不说不论是 AS 3.0,还是 Gradle 3.0 都变化非常大,具体的更新日志参考下官网, ...
- android 线程方式打印log到sd卡
2019独角兽企业重金招聘Python工程师标准>>> package com.foundreams.profs_chinese.payutil; import java.text. ...
- android studio怎么设置log保存txt_【Stata写论文】log命令的使用和分析结果导出
Stata的log命令一般时候可以不用,但是在结果展示.提交作业或者报告的时候,就很可能用得上了.因此,我们需要熟练掌握它. log命令也称为日志功能,当我们启用后,可以把结果窗口中的内容完整保存到S ...
- Android关闭内核打印log信息
方法一: 动态设置打印优先级,每次开机需要设置一次 su echo 0 > proc/sys/kernel/printk 方法二: 修改kernel/printk/printk.c consol ...
最新文章
- Feedburner关于Feed的思考
- _ZNote_Qt_定时器的总结
- eclipse安装maven插件
- cad必练10张图_CAD比例问题大详解!赶紧收藏!
- OpenCV3学习(4.3)——图像形态学(膨胀,腐蚀)
- MVC控制器中动作方法返回的结果
- 我们都在向前奔跑,只有它独自留在了22年的春天 —— 冬奥日记
- 二分法的样例 题解
- python清空list_python怎么清空list
- js基础知识汇总12
- 《高数》 符号全集(持续更新。。。)
- i.e.、e.g.、etc.、et al、viz各种缩写都是什么意思?一文搞懂各种缩写
- keil中 如何解决warning L13:Recursive call to Function 及overlay解释
- Java-基于SSM的健身后台管理系统
- 修复WIN10下Prolific USB-to-Serial Comm Port驱动无法使用
- java中Scanner类用法的详解
- 浅谈常见的七种加密算法及实现
- 谈谈爱情——祭奠那逝去的青春
- FPGA电源选择的重要性
- paraview中的网格显示设置