作为一名开发人员,与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)