• 背景描述:使用android studio连接真机调试的时候,使用终端指令(如adb logcat -d)无论如何看不到有日志输出

    # 首先我们需要验证是否真连接上真机
    PS C:\android\project> adb devices                 
    List of devices attached
    49a050fc        device
    
    # 先清理之前可能存在的日志,该命令不会输出任何东西
    PS C:\android\project> adb logcat -c
    
    # 然后执行下面指令,该指令尝试验证logcat能否正常获取日志
    # 理论上执行后应该有输出,但实际直接无任何输出并一直卡在那
    PS C:\android\project> adb logcat -d | Select-Object -First 10
    

1.背后逻辑和解决办法

国内太多系统存在基于原版安卓系统的魔改,批量搜索实际上你能发现除了MIUI其他系统大多也需要手动更改某些选项才能开启原生安卓系统的logcat日志记录。接下来说解决流程

1.确认USB调试基础设置
  • 进入手机设置 → 关于手机 → 连续点击“MIUI版本”7次以开启“开发者选项”
  • 返回设置主界面,进入“更多设置” → “开发者选项”
  • 确认“USB调试”开关已开启
  • 连接USB后,下拉通知栏,点击USB连接提示,选择“文件传输”或“MIDI”模式
2.检查设备授权与ADB连接状态

输入adb devices命令查看是否正常连接

# 连接上之后能正常输出设备列表
PS C:\android\project> adb devices                 
List of devices attached
49a050fc        device

如果设备显示为unauthorized,请拔插USB线,并在手机弹出的授权提示中点击“允许”

3.硬件与驱动层面:数据线与电脑驱动问题
  • 无连接反应:说明数据线仅充电不支持数据传输,极有可能是买的第三方线太劣质,需要去更换为支持数据传输的数据线
  • 设备无法识别:缺少USB驱动,需要安装ADB驱动安装工具,一般来说安装好android studio之后是直接就有adb工具了
4.开启系统级日志记录开关
  • 进入 设置 -> 更多设置 -> 开发者选项
  • 找到 “日志记录器缓冲区大小” (Log buffer size),建议设置为 16M 或更大
  • 找到 “日志记录级别” (Log level),确保选择了 Verbose
  • 部分版本可能需要:找到 “开启开发者日志” (Enable developer logs) 开关并打开。部分 MIUI 版本在打开此开关后会提示重启手机,请按提示操作

接下来一般就可以adb logcat获取日志了,你可以执行以下命令,如果执行后有输出说明搞定了

# 使用以下命令查看日志输出级别:
adb shell setprop persist.log.tag

若无输出,可尝试设置全局日志级别:

adb shell setprop persist.log.tag "*:V"

然后再执行以下命令,有输出说明已经成功获取日志,大功告成

# 导出所有日志,并输出前面10行(此命令windows用户有效,其他设备用模型自行查找)
adb logcat -d | Select-Object -First 10

标签: none

添加新评论