电商项目完成的BUG调查原因和解决方案

1.     BUG系列一:界面销毁时,未关闭广播, dialog等,崩溃
·        Bug现象

Bug 85778:同一个账号,两部手机登陆,第一个登陆的手机,点击我的优惠券会退出app

·        Bug原因

Fragement 存在广播和Dialog等有关控件,fragement销毁了,但是未关闭广播或控件,导致崩溃

·        Bug解决方法

在Fragement的onDestroy()中及时处理未注销的广播或Dialog。


1.     Bug系列二:未加载完布局,先调用布局,导致布局为null,崩溃
·        Bug现象

Bug 86244: 断网情况下,进入APP,点击消息,崩溃

·        Bug原因

Activity继承BaseActivity,在onCreate()方法内,显示出错信息的布局,未放在initView(), initData(),initListener()前方,导致在initData()获得网络数据失败,需调用错误布局时,错误布局仍为空,调用失败,崩溃

·        Bug解决方法

将布局的注入放在initView(), initData(),initListener()前方。

2.     Bug系列三:Fragement不存在于viewPager,先调用其里面的方法,导致获取不到上下文,崩溃
·        Bug现象

Bug 86514: 断网情况下,进入APP,点击购物车,崩溃

·        Bug原因

在MainActivity下有调用到shoppingCartFragment(购物车)下的requestCartItems()(获取购物车信息)的方法。在断网情况下,第一次进入App,点击购物车,直接调用requestCartItems()。无网络情况下,同BUG系列二,崩溃。因为Fragement不存在,布局未加载。

·        Bug解决方法

在MainAcitvity调用requestCartItems() 方法时,加判断,判断Fragement是否已存在,shoppingCartFragment.isAdded().

3.     Bug系列四:更换账号时,HashMap里的数据未清除,引起的数据问题
·        Bug现象

介绍:主页中的商品列表是通过获取HashMap里的 数据显示

Bug:  从有商品列表数据的地区,更换帐号到没有任何商品的地区,首页应该显示无商品,但是仍显示上个地区商品数据。退出app,重新进入后,首页则正确显示。

·        Bug原因

在首页第一次,获得商品后,存入HashMap,更换帐号到没有任何商品的地区时,因为未获得新的数据,未去更新HashMap里的数据,导致该BUG产生。

疑问:假设原为有商品的A区,更换帐号到有商品的B区时,为何没出现,该BUG?

解释:更换到有商品的B区时,从服务器那获得到了新数据,重新将HashMap原来的老数据替换掉;而如果该地区无任何数据,未更新HashMap.

·        Bug解决方法

在退出账号的同时,清空HashMap。

4.     Bug系列五:图片压缩的边框计算未跟控件一致
·        Bug现象

Bug 86983: 商品详情下面的图片介绍现在是把右边减掉了一部分,改成以实际大小缩小原图

·        Bug原因

介绍:这个流程是图片压缩后,计算好其边框后,存入TextView。

在计算图片压缩后应显示的宽度时,是按手机的屏幕宽度,未按TextView的宽度,导致图片右边被减掉。修改前图

·        Bug解决方法

按TextView的宽度计算压缩后图片的宽度,另外注意 padding和layout_margin是左右都有;ScreenWWidth是PX,需将dip转px;修改后如图
————————————————
版权声明:本文为CSDN博主「茶卡y」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012881042/article/details/51221498

原文地址:https://www.cnblogs.com/gaodenghan/p/14502613.html