摘要(Abstract)

必备技能,使用日志工具 LogCat,并尝试解决真机调试没有日志的问题。

日志工具(LogCat)

日志在任何项目的开发过程中都会起到非常重要的作用,在 Android 项目中如果你想要查看日志则必须要使用 LogCat 工具。

在 Android Studio 最下方的 Status Bar 中找到 6:Android,点击她。如下图

LogCat 出现了,如下图

  1. 这里选择 Devices,当然一般来说不需要选择,如果只连接了一个设备的话。
  2. 这里选择 Log level,日志级别。包括:Verbose、Debug、Info、Warn、Error、Assert。以上级别依次升高。
  3. 这里选择过滤器,默认会自动生成一个过滤条件是 Package name 是项目包名的过滤器。

使用 LogCat

Android 中的日志工具类是 Log(android.util.Log),提供了如下的几个方法供我们打印日志。

  1. Log.v() 对应 Verbose
  2. Log.d() 对应 Debug
  3. Log.i() 对应 Info
  4. Log.w() 对应 Warn
  5. Log.e() 对应 Error
  6. 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______________,那么恭喜你,你用的真机貌似跟我的一样比较高端,是不是有什么黑科技。

我们来尝试解决这个问题。

  1. 手机的开发人员选项打开了么,其中的 USB 调试打开了么?搞定他们并重新运行,是否能找到我们的日志?否,转到 2。
  2. 日志中是否有这样 could not disable core file generation for pid 3963: Operation not permitted 的信息么? 是,转到 3;否,那我也不知道怎么搞,或者你可以把日志贴到评论中我看看。
  3. 是华为手机么?是,转到 4;否,你可以参考 4 自己 Google Baidu 一下。
  4. 在拨号界面输入:*#*#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----问题总结----华为坑深相关推荐

  1. android studio日志不打印,Mac 下 Android Studio 不打印日志的解决办法

    Mac 下 Android Studio 不打印日志的解决办法 Mac 下 Android Studio 不打印日志的解决办法 前言: 在 Mac 下使用 Android Studio 时常会遇到 A ...

  2. Android Studio项目手机模拟测试(华为荣耀系列)

    打开手机搜索 '开发者选项' 或者 '开发人员选项' : 找到"选择USB配置",改为MTP(多媒体传输): 打开usb调试: 以上部分顺序不可变化,执行完用usb线连接到计算机: ...

  3. Android Studio 插件开发详解四:填坑

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 系列目录 Android Gradle使用 ...

  4. 在Android NDK下打印log

    在Android Studio NDK中打印log 示例 // 导入必须的android/log.h头文件 #include <android/log.h>// 可选.定义方便使用的宏 # ...

  5. Android中日志打印 Log的使用

    文章目录 Log等级划分 Log使用规范 Android Studio中log使用 Logcat中选择筛选条件 Log信息颜色设置 Log信息说明 写一份便于使用的Log辅助类 Log等级划分 Log ...

  6. android studio漫画,Android Studio 3.0 更新Gradle 插件填坑

    一.Java8确实快了 为了提升编译速度,这几天用上了 AS 3.0 和 Gradle 3.0 插件,不得不说不论是 AS 3.0,还是 Gradle 3.0 都变化非常大,具体的更新日志参考下官网, ...

  7. android 线程方式打印log到sd卡

    2019独角兽企业重金招聘Python工程师标准>>> package com.foundreams.profs_chinese.payutil; import java.text. ...

  8. android studio怎么设置log保存txt_【Stata写论文】log命令的使用和分析结果导出

    Stata的log命令一般时候可以不用,但是在结果展示.提交作业或者报告的时候,就很可能用得上了.因此,我们需要熟练掌握它. log命令也称为日志功能,当我们启用后,可以把结果窗口中的内容完整保存到S ...

  9. Android关闭内核打印log信息

    方法一: 动态设置打印优先级,每次开机需要设置一次 su echo 0 > proc/sys/kernel/printk 方法二: 修改kernel/printk/printk.c consol ...

最新文章

  1. Feedburner关于Feed的思考
  2. _ZNote_Qt_定时器的总结
  3. eclipse安装maven插件
  4. cad必练10张图_CAD比例问题大详解!赶紧收藏!
  5. OpenCV3学习(4.3)——图像形态学(膨胀,腐蚀)
  6. MVC控制器中动作方法返回的结果
  7. 我们都在向前奔跑,只有它独自留在了22年的春天 —— 冬奥日记
  8. 二分法的样例 题解
  9. python清空list_python怎么清空list
  10. js基础知识汇总12
  11. 《高数》 符号全集(持续更新。。。)
  12. i.e.、e.g.、etc.、et al、viz各种缩写都是什么意思?一文搞懂各种缩写
  13. keil中 如何解决warning L13:Recursive call to Function 及overlay解释
  14. Java-基于SSM的健身后台管理系统
  15. 修复WIN10下Prolific USB-to-Serial Comm Port驱动无法使用
  16. java中Scanner类用法的详解
  17. 浅谈常见的七种加密算法及实现
  18. 谈谈爱情——祭奠那逝去的青春
  19. FPGA电源选择的重要性
  20. paraview中的网格显示设置

热门文章

  1. 拷贝构造(深拷贝、浅拷贝)
  2. 初闻不知曲中意 | 父母给我的爱刚刚好,感谢你们给过的陪伴
  3. 国标28181:IPC信号检索设备目录查询
  4. android视频通话ndk,Android基于SDK,NDK开发视频通话软件探索
  5. Nessus 8 虚拟机(无IP限制)
  6. 李进良:TD-LTE高潮完全逆转 4G前景捏一把汗
  7. 三方法简单解除任务管理器被禁用
  8. 京东获得商品详情接口调用展示
  9. 网络疯传的《纽约客》封面图:人类有一天会向机器人乞讨!
  10. 2021年电工(高级)考试APP及电工(高级)模拟考试