主要原因总结如下:
1、空指针:对象没有初始化就使用了
2、空函数:有事件源但没有对应的事件对象
3、死循环:没有合理的循环控制流
4、内存泄露:同一个对象不停地开辟,而且没有释放
5、内存溢出:程序所消耗的内存大于硬件提供的内存
6、网络:异步加载时提前调用了数据(现象是在弱网时,根源是空指针)
7、界面UI:像拍照没有附加于ControlView
8、主线程:需要主线程执行的,放于子线程里执行了。比如:网络电话--网络电话是用C语言写的,在高级语音中要调用中,需要加线程转换。
因应用自身空指针异常造成闪退
闪退的原因分析:
1、没有对你new出来的对象进行实例化,或者你去数据库里查询一个空的对象,就是空指针
2、空指针的异常NullPointer 无非是因为对象为null的情况下去调用该对象所拥有的方法或者成员变量造成的
解决办法:
在调用有可能为空的变量的时候,最好做一下非空的判断。