前言

应用当前界面崩溃停留在上个页面,看不到崩溃日志

Android的logcat控制台,看不到应用崩溃的日志?

如何拦截到未捕获的异常,并打印出来,帮助我们快速定位到代码问题呢?

最近同事跟我反应说开发的应用run的时候发生了崩溃,但是在logcat中,只看到了应用重启的日志,类似下面这样的:

追寻答案

那么怎样查看错误日志,快速定位问题的原因呢?

1,由于崩溃的概率不会那么多,最开始的时候,纯靠手速:

知道操作哪里会崩溃,先把logcat控制台清下logcat控制台日志,然后操作应用,快速Ctrl+Alt+A(QQ的截屏快捷键);呵呵这个考验手速的方案,肯定不可取;

2,通过切换channel进程和dead进程查看错误日志,这个能看到一些日志,但是也不是很全面,不可取;

3,根据业务粗略定位产生问题的代码段,通过try catch包裹,通过debug跟踪代码一步步跟到问题所在;

这种适合代码逻辑清晰、简单地方,如果循环、接口回调、多线程等操作比较多,是很不易跟到具体问题的。 4,最好的方案是拦截到正常代码中未捕获的异常,然后能够单独打印出来,方便我们调试和查看。

接下来就看下如何去实现拦截未捕获的异常的。

确定方案

首先,我们要先了解一个UncaughtExceptionHandler,它能帮助我们捕获到全局的异常,

具体用法是Application的onCreate方法中调用

@Override

public void onCreate() {

super.onCreate();

// 以下用来捕获程序崩溃异常

// 程序崩溃时触发线程

Thread.setDefaultUncaughtExceptionHandler(new OwnUncaughtExceptionHandler());

}

其中OwnUncaughtExceptionHandler继承UncaughtExceptionHandler,并重写uncaughtException方法,

public class OwnUncaughtExceptionHandlerimplements Thread.UncaughtExceptionHandler {

@Override

public void uncaughtException(Thread thread, Throwable ex) {

StackTraceElement[] elements = ex.getStackTrace();

StringBuilder reason =new StringBuilder(ex.toString());

if (elements !=null && elements.length >0) {

for (StackTraceElement element : elements) {

reason.append("\n");

reason.append(element.toString());

}

}

Log.e("zyq", reason.toString());

android.os.Process.killProcess(android.os.Process.myPid());

}

}

看到结果

然后保存再运行你的程序,就可以在logcat中看到程序崩溃相应的日志了,如果程序没有崩溃,你可以自己造个空指针异常试验下,

在logcat控制台可以看到: 注意:过滤日志的地方选择 No Filters

感谢

如果觉得本文对你有帮助,请收藏加关注,有任何疑问,可以私信交流或者评论,谢谢!

android调用c闪退未看到log,解决:Android开发 看不到崩溃的日志相关推荐

  1. Android 调用相机闪退问题

    转载自:https://blog.csdn.net/yinxing2008/article/details/82792582 背景: 在安卓7.0手机上,调用系统相机拍照,结果出现闪退. 原因: An ...

  2. android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...

    因为工作的需要,我在做软件的时候用到地图,并且需要从地图中搜索公交.商户等信息,因此选择百度地图.百度地图搜索的poi搜索正好符合我的需求,但是软件完成后发现在软件第一次执行的时候总是出错,百度地图无 ...

  3. Android番外篇 华为手机APP闪退重启清空Log日志问题解决

    问题一:没有Log.v和Log.d日志 解决方案: 进入拨号界面输入:##2846579## 依次选择:后台设置-LOG设置-AP 日志 重新启动手机 问题二:闪退重启清空Log日志 方式一 : 错误 ...

  4. 解决Xamarin Android SDK Manager闪退问题

    解决Xamarin Android SDK Manager闪退问题 SDK Manager闪退是因为它找不到java.exe导致的.SDK Manager默认是通过读取注册表中JDK安装信息来java ...

  5. 微信 android 闪退问题怎么解决方法,如何解决微信闪退问题 四种解决微信闪退无法登录的原因及方法分享...

    微信闪退无法登录怎么办?现在使用微信的用户越来越多,即方便又快捷,有的朋友在使用时候可能会遇到微信闪退无法登陆的情况,今天小编为大家带来了四种解决微信闪退无法登录的原因及方法分享,感兴趣的朋友快来了解 ...

  6. Android卡通农场闪退,卡通农场闪退解决办法

    卡通农场是一款经营的游戏,但是不少玩家满怀期待的下载好了,却出现了闪退的现象,这着实让人很不自在,今天影子小编就来为大家带来,iOS版.安卓版卡通农场闪退无法进入游戏解决方法. 苹果版解决方法: 方法 ...

  7. 避难所Android闪退,iOS/安卓版《辐射:避难所》Fallout Shelter攻略:闪退进不去解决办法...

    辐射避难所Fallout Shelter闪退进不去解决办法: 1.网络异常 由于<辐射:避难所>(Fallout Shelter)是一款需要联网的游戏,所以如果我们的网络出现异常很容易造成 ...

  8. ie调用java闪退_win7系统位数不兼容导致Ie浏览器频繁出现闪退的解决方法

    很多小伙伴都遇到过win7系统位数不兼容导致IE浏览器频繁出现闪退的困惑吧,一些朋友看过网上零散的win7系统位数不兼容导致IE浏览器频繁出现闪退的处理方法,并没有完完全全明白win7系统位数不兼容导 ...

  9. autocad2014 第二次打开闪退_cad2014闪退的原因和解决方法

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 以系统升级出现闪退为例,cad2014闪退的原因和解决方法: 1.原因:Windows8.1升级成Windows10系统之后出现了 ...

最新文章

  1. mysql 1236_Mysql主从同步Last_IO_Errno:1236错误解决方法
  2. 流数据分析平台Storm简介
  3. title: postGreSQL 插件 timescaleDB 安装使用 date: 2019-02-14 18:02:23
  4. 智能,万亿维空间中的求解
  5. Mysql表结构升级_mysql表结构升级时根据字段是否存在执行相应操作
  6. 使用PCL::GPU::遇到问题
  7. 如何在VMware8虚拟机里安装Xp GHOST系统 解决不能启动Xp系统方法
  8. C语言去括号编程题,去括号 - C语言网
  9. JavaScript DOM介绍
  10. 爬虫学习日记 Day1 开始爬虫
  11. 系统学习深度学习(二十二)--CNN经典模型总结
  12. Python实现APP自动化发微信群消息。这才是内卷的极致。
  13. n1盒子救砖_N1不能通过网络刷机后拆机救砖
  14. 官方rom提取原签名工具_从安卓官方版ROM中提取你喜欢的软件(单独安装包)
  15. java-setBounds方法
  16. G6-Editor 编辑器入门使用教程
  17. mSystems:土壤化学计量特性影响土壤C、N和P循环微生物丰度及其对全球变化的抵抗力(一作解读)...
  18. 对与association和collection的理解:
  19. AI中怎么给文字加粗
  20. 4.绝对值不等式(模板)

热门文章

  1. 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧(转)...
  2. (转)逻辑地址,线性地址,物理地址的差别
  3. C#里调用带输出参数的存储过程
  4. 149.从网络的作用范围分类 150.使用范围分类 151.拓扑结构分类
  5. 航天器的“回家路线”有几种
  6. 多地发钱鼓励生育,能刺激年轻人生娃吗
  7. 国家卫健委:我国男女性成人平均身高分别为169.7厘米和158厘米
  8. ubuntu中PyCharm的安装与卸载
  9. pycharm中怎么实现批量修改变量名称
  10. 圣诞节计算机老师贺卡祝福语,老师圣诞节贺卡祝福语