摘要Android 中常见的Bug

作为一名开发人员,与Bug打交道是难以避免的,不管是别人的还是自己的,但是如何才能减少Bug哪?给大家一个建议,平时多看Bug,分析他的类型,产生原因,才可以避免,如下是我摘录的几个Bug。


  • java.lang.NullPointerException
    Attempt to invoke virtual method ‘int java.lang.Integer.intValue()’ on a null object reference
    java.lang.RuntimeException:Unable to start activity ComponentInfo{import.-xxxxx-.xxxxActivity}: java.lang.NullPointerException: Attempt to invoke virtual method ‘int java.lang.Integer.intValue()’ on a null object reference

    分析这个Bug原因,你会发现类型强转时候未做判空处理,(Integer) bundle.get(“from”),对这种情况一定要先判断是否为空,如果不为空再做强转。

 if(intent != null){
    Bundle bundle = intent.getExtras();
     if(null!=bundle && bundle.get("from")!=null){
       mFrom = (Integer) bundle.get("from");
     }
 }

  • E/WindowManager﹕ android.view.WindowLeaked: Activity com.sogou.androidtool.shortcut.AppFolderActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{3fbfde72 V.E….. R……. 0,0-1080,1118} that was originally added here

    估计好多同学在Dialog使用中会经常出现这个Crash,究其原因,你会发现如果当前Activity 被销毁之后,如果还未对Dialog进行释放,就会造成Crash。所以切记一定要在当前Activity 的Destory 方法中释放.

 public void onDestroy() {
      if(mDialog!=null){
            mDialog.dismiss();
        }
   }
  • java.util.ConcurrentModificationException
    java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值