项目BUG总结1

     项目上线一段时间后,加入了公司的监控平台,奔溃还真是不少。。公司的无线环境和高配置的手机几乎任何bug都没测出来,经过一段时间的fix,总结下结果防止以后再犯同样的错误

  

 B1:  java.lang.ClassCastException 

 出现这个错误表示很蛋疼,原因是我们居然导入了两个不同版本的zxing包,这个问题是由于大意造成的以后一定要清理包中无用的代码,特别是功能相同已经被废弃的代码

 

B2:   java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState   

     在使用Fragment的时候,这个bug几乎经常出现,当我们在Activity的onCreate方法中加入一个Fragment时不会出现这个问题,但是当我们通过一个异步回调添加的时候会出现这个问题;当Activity的状态已经调用了onSaveInstanceState   的时候,当前Activity 的状态已经结束了,此时你还强制性的去添加一个Fragment异常就此产生;

     解决方案:提交fragment时使用commitAllowingStateLoss而不是commt,允许Activity状态丢失


B3: java.lang.IllegalStateException: Fragment a{44629768} not attached to Activity 这个错误出现了两种情况

      1: android.support.v4.app.Fragment.getResources  

         在Fragment中获取资源信息是解决使用了fragment自带的getResource ,而此时fragment还未attach到Activity上

        解决方案:使用Activity的getResource 或者使用当前应用的Application的getResource

      2:android.support.v4.app.Fragment.startActivityForResult

        异步回调后未对Activity的状态做判断

       解决方案:每次异步回调的时候在回调方法最前面判断当前Fragment所在的Activity是否还存在 ---》

        if (getActivity() == null || getActivity().isFinishing()
                    || MyFragment.this.isDetached()) {
                return;
            }

B4: java.lang.IllegalStateException: Activity has been destroyed

       由于异步回调后Activity已经销毁

      解决方案   

    if (getActivity() == null || getActivity().isFinishing()
                    || MyFragment.this.isDetached()) {
                return;
            }

你可能感兴趣的:(Activity,bug,Fragment)