Android:Consumer closed input channel or an error occurred. events=0x8异常导致程序异常终止问题解决方案
原文地址:http://blog.csdn.net/zhjw009/article/details/8765801程序异常终止但没有任何异常信息,只捕获到Log里面下面的有用信息:09-19 21:57:02.222: W/InputDispatcher(153): channel '410c5958 com.nju.ecg/com.nju.ecg.wave.WaveScreen (ser
原文地址:http://blog.csdn.net/zhjw009/article/details/8765801
程序异常终止但没有任何异常信息,只捕获到Log里面下面的有用信息:
09-19 21:57:02.222: W/InputDispatcher(153): channel '410c5958 com.nju.ecg/com.nju.ecg.wave.WaveScreen (server)' ~ Consumer closed input channel or an error occurred. events=0x8
09-19 21:57:02.222: E/InputDispatcher(153): channel '410c5958 com.nju.ecg/com.nju.ecg.wave.WaveScreen (server)' ~ Channel is unrecoverably broken and will be disposed!
09-19 21:57:02.232: W/InputDispatcher(153): Attempted to unregister already unregistered input channel '410c5958 com.nju.ecg/com.nju.ecg.wave.WaveScreen (server)'
09-19 21:57:02.232: D/dpt(153): setPerformanceMode: 2
09-19 21:57:02.232: I/ActivityManager(153): Process com.nju.ecg (pid 28658) has died.
网上很多关于此问题的提问,最全的总结可以参考这篇文章 http://blog.csdn.net/name_david_lee/article/details/7972957,
我的程序得以解决这个问题灵感也来自这篇文章,这边稍作总结:
很多人在问Log里面看不到任何异常信息,只能看到上述日志,实际总结到最后,就是因为异常没有得到捕获导致客户端崩溃,有人问我使用了全局异常捕获,为什么还是捕获不到?这里只能告诉你,这个异常不是我们自己写的代码引起的。在这里我只能分享下我的项目为什么会捕获不到这个异常,其他情况大家可以联系起来分析分析。我的项目使用了so库(c,c++编译打包提供给Android使用Native方式调用),这个库中有一个方法没有捕获异常信息,JAVA层调用该方法也未捕获异常(就算捕获了,最多程序不崩溃,但是也看不到异常信息),所以导致Android程序异常终止但是无任何异常显示。
希望能帮到遇到同样情况的朋友,其他未能捕获的异常看各个具体项目了,这里不做更多分析。
简单点,so库做一个除法,除以0,就会报着个错,而且上层无法收到。
更多推荐
所有评论(0)