Android项目中printStackTrace()无输出?如何输出至AS控制台?
解决Android中
printStackTrace()无控制台输出的问题 先检查Logcat的过滤规则
Android Studio的Logcat默认可能有过滤设置,导致printStackTrace()的输出被漏掉。这个方法的输出属于System.err的内容,默认会被归类到Logcat的Error级别,标签是System.err。你可以这么操作:- 把Logcat的级别过滤器改成
Verbose或者Error,避免级别过滤挡住输出 - 在搜索框直接输入
System.err,精准定位这类日志 - 取消"Show only selected application"的勾选(如果当前没选中你的App进程,也看不到输出)
- 把Logcat的级别过滤器改成
换成Android官方的Log类输出(更推荐)
Android本身不建议用printStackTrace()来排查问题,官方提供的Log类更适配开发环境。把代码改成这样:Log.e("你的自定义TAG", "异常描述", exceptionVar);这里的TAG可以用当前类名,第三个参数传入异常对象,就能在Logcat的Error级别下看到完整堆栈,而且更容易筛选查找。
确认异常确实触发了catch块
先搞清楚printStackTrace()这行代码有没有真的执行——比如是不是有嵌套的try-catch,或者异常被其他代码吞掉了,根本没走到这一步。可以在catch块里加一句Log.d(TAG, "进入catch块了")来验证。手动重定向System.err到Logcat(可选)
如果一定要用printStackTrace(),可以在Application的onCreate()方法里加这段代码,把System.err的输出转成Logcat日志:System.setErr(new PrintStream(new OutputStream() { @Override public void write(int b) throws IOException { Log.e("System.err", String.valueOf((char) b)); } }));检查设备连接和Logcat服务状态
确保设备和Android Studio连接正常:- 打开
Device File Explorer,能看到设备文件就说明连接没问题 - 点击Logcat面板右上角的重启按钮(循环箭头图标),重置Logcat服务
- 打开
内容的提问来源于stack exchange,提问作者user21603351
相关产品推荐
相关产品推荐

