Android中的常见FC及解决方式整理

一,Android的FC就是指Force Close的意思,常见现象就是APP异常崩溃结束,如果没有捕获并处理异常,系统会弹出一个对话框指示程序出错,有时还有个强制关闭的按钮。看LOG多半都有类似这样的这一句:
ActivityManager( 2644): Process com.tencent.wecarspeech (pid 8608) has died.
二,常见FC的原因有很多,一般如下:
1,空指针异常(NullPointerException)
W/System.err( 8608): java.lang.NullPointerException 后面紧紧跟着一堆System.err开头的错误LOG,我们从下往上看,因为这是代码的调用顺序,最上面一个就是出错的地方,但是原因有可能是下面的调用导致,也有可能是调用逻辑没问题但是就是最后这个地方有问题。
2,SO库没有找到
3,类(包括依赖的jar包)没有找到
4,资源没有找到,比如图片啊 xml等等
5,连Android API使用的顺序错误也可能导致,比如:
(比如setContentView()之前进行了findViewById()操作)
三,如何避免弹出Force Close窗口
可以实现Thread.UncaughtExceptionHandler接口的uncaughtException方法 代码如下:
import java.lang.Thread.UncaughtExceptionHandler;
import android.app.Application;
public class MyApplication extends Application implements UncaughtExceptionHandler {
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
thread.setDefaultUncaughtExceptionHandler( this);
}
}
想要哪个线程可以处理未捕获异常,thread.setDefaultUncaughtExceptionHandler( this); 这句代码都要在那个线程中执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值