摘要Android 中常见的Bug
2016-02-18 11:10
351 查看
作为一名开发人员,与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”),对这种情况一定要先判断是否为空,如果不为空再做强转。
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 方法中释放.
java.util.ConcurrentModificationException
java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)
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)
相关文章推荐
- android6.0 otg连接设备 点亮屏幕(案例)
- Android Studio 2.0 Beta 5发布,修复几个与即时运行相关的严重BUG.
- 关于Android皮肤更换分享
- android 开发过程中,两个包名相同的项目如何上传到同一个应用商城
- android下拉刷新控件 android-pulltorefresh
- Android 添加TextView删除线(代码简单)
- Android重写TextView实现文字整齐排版的方法(附demo源码下载)
- 【Android】10.2 使用Android Support Library增强组件功能
- 【Android】10.1 扩展组件库和其他视图--本章示例主界面
- android应用签名详解
- android 按钮事件
- Android studio 各种快捷键,使用技巧
- Android几个使用频率很高的adb命令小结
- ADB常用命令
- Android 动画详解
- android自定义钟摆loadingView
- Gradle的基本使用
- Android Studio默认产生Fragment
- Android通过Movie展示Gif格式图片
- Android Graphics (一) :Paint