你的位置:首页 > 软件开发 > 操作系统 > 关于Android Force Close 出现的原因 以及解决方法

关于Android Force Close 出现的原因 以及解决方法

发布时间:2016-08-09 20:00:13
一、原因:forceclose,意为强行关闭,当前应用程序发生了冲突。NullPointExection(空指针),IndexOutOfBoundsException(下标越界),就连Android API使用的顺序错误也可能导致(比如setContentView()之前进行 ...

一、原因:

forceclose,意为强行关闭,当前应用程序发生了冲突。

NullPointExection(空指针),IndexOutOfBoundsException(下标越界),就连Android API使用的顺序错误也可能导致(比如setContentView()之前进行了findViewById()操作)等等一系列未捕获异常

 

二、如何避免

如何避免弹出Force Close窗口 ,可以实现Thread.UncaughtExceptionHandler接口的uncaughtException方法 代码如下:

public class MainActivity extends Activity implements Thread.UncaughtExceptionHandler,    View.OnClickListener {  private List<String> mList = new ArrayList<String>();  private Button btn;  private int pid;  @Override  protected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Log.i("tag", "--->>onCreate");    initView();    //设置处理异常的handler    Thread.setDefaultUncaughtExceptionHandler(this);  }  /**   * 初始化控件   */  private void initView() {    btn = (Button) findViewById(R.id.main_btn);    btn.setOnClickListener(this);  }  @Override  public void uncaughtException(Thread arg0, Throwable arg1) {    // TODO Auto-generated method stub    Log.i("tag", "截获到forceclose,异常原因为:" + "\n" +        arg1.toString()+" Thread:"+arg0.getId());    // finish();//结束当前activity    android.os.Process.killProcess(android.os.Process.myPid());  }  @Override  public void onClick(View arg0) {    // TODO Auto-generated method stub    switch (arg0.getId()) {      case R.id.main_btn:        mList.get(1) ;//产生异常        break;      default:        break;    }  }  @Override  protected void onPause() {    super.onPause();    Log.i("tag", "--》onpause");  }  @Override  protected void onStop() {    // TODO Auto-generated method stub    super.onStop();    Log.i("tag", "--->onstop");  }  @Override  protected void onDestroy() {    // TODO Auto-generated method stub    super.onDestroy();    Log.i("tag", "-->ondestroy");  }}
08-0918:50:31.66410739-10739/example.com.force_anrI/tag:截获到forceclose,异常原因为:java.lang.IndexOutOfBoundsException:Invalidindex1,sizeis0Thread:1

原标题:关于Android Force Close 出现的原因 以及解决方法

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录