导致crash等异常的常见原因分析
2017-05-19 10:34
344 查看
Crash:客户端程序运行时遇到无法处理的错误或异常,导致退出应用程序(崩溃);
1.空指针异常
java.lang.NullPointerException
2.堆栈溢出(ooM)
java.lang.OutOfMemoryError
3.数组越界
java.lang.IndexOutOfBoundsException && java.lang.ArrayIndexOutOfBoundsException
4.应用进程被其他进程中断(如任务管理器);
5.系统反应缓慢,导致应用主线程卡死,请求响应超时;
6.CPU负载过高;
7.控件不匹配
8.死锁
9.运行异常
java.lang.RuntimeException
参考:
1.闪退(crash)发生的原因有哪些
https://www.zhihu.com/question/34938240/answer/60494712
2.Android常见Crash原因总结(二)
http://blog.csdn.net/zhangcanyan/article/details/51493279
1.空指针异常
java.lang.NullPointerException
引起NullPointer有两种比较常见的原因: 直接使用一个方法返回的数据,不做NullPoint判断,或不做try catch保护,因此而造成的NullPointer,通常是因为使用者没有考虑到方法会在某些特殊情况会返回null 作为一个公共方法,在不做入参检查的情况下,使用参数 使用前先判定是否为空,是否存在需要引用的元素,防止因为溢出或引用类型不符合的变量导致错误);
2.堆栈溢出(ooM)
java.lang.OutOfMemoryError
OutOfMemoryError通常是两种原因,如下: 存在严重的内存泄露,这种问题如果有内存快照通常都是比较好解决的 对内存的使用不合理,比如内存中有相同图片,对图片缓存的大小设置不合理,对可能造成OOM的地方未捕获。在Android中decode一张图片通常需要比较大的内存,在decode图片的时候也很容易出现OOM,这种情况通常需要进行捕获; 内存泄露,当手机装了一大堆软件之后就会变得非常卡,内存泄露之后正在运行的程序越来越感觉内存不够用,严重的就是不断卡顿然后Crash);
3.数组越界
java.lang.IndexOutOfBoundsException && java.lang.ArrayIndexOutOfBoundsException
这两个异常类似,出现这种异常通常是因为多线程处理数据不同步,出现了越界的情况。比如一个线程在操作一个List的时,另一个线程清空了这个List,这时就会抛出这类异常; 使用如果没有进行new一个对象,直接进行使用,添加元素等等操作,会出现错误 ;
4.应用进程被其他进程中断(如任务管理器);
5.系统反应缓慢,导致应用主线程卡死,请求响应超时;
6.CPU负载过高;
7.控件不匹配
xml文件定义和activity中使用的控件不匹配,或者在activity中试图寻找其他xml文件的控件;
8.死锁
9.运行异常
java.lang.RuntimeException
RuntimeException比较常见的有如下两种原因: 因为系统调用我们实现的Activity的各个周期方法(onCreate,onResume等)或调用Service的onBinde,unBinde失败,系统抛出RuntimeException这个异常,其根本原因是我们实现的如onCreate,onResume等方法抛出了某种异常而导致的 在一个没有调用Looper.prepare()的线程中,通过New Handler()方式创建handler实例
参考:
1.闪退(crash)发生的原因有哪些
https://www.zhihu.com/question/34938240/answer/60494712
2.Android常见Crash原因总结(二)
http://blog.csdn.net/zhangcanyan/article/details/51493279
相关文章推荐
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- Java 常见异常类型及原因分析(上)
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- Android 4.4以下ListView addHeader和addFooter放在setAdapter之后导致异常的原因分析和解决
- JAVA常见异常类型及其原因分析
- JAVA常见异常以及可能导致的原因
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- 分析总结导致Web站点崩溃最常见的七大原因
- 分析析JAVA中常见异常与原因
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- Eclipse相关错误导致web项目发布异常问题原因分析及解决方案
- Struts常见错误及原因分析
- 在Hiberate事务中,出现抛异常或者其它原因导致没有执行commit或rollback方法时的安全问题
- ASP常见错误信息、原因分析与解决方法
- 【开发经验】Struts常见错误及原因分析
- 【开发经验】Struts常见错误及原因分析
- C# 外部组件发生异常原因分析 [分析]
- Strus常见错误及原因分析
- Strus常见错误及原因分析