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

这是我来到浙大网新恒天后,第一个完成的项目。在完成项目后,我总结了那些自己感觉重要的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;修改后如图

 


  • 4
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值