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

2023-11-10

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

 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 刷脸支付市场谁才会是最后的大赢家

    2019年 刷脸支付设备的更新非常频繁 支付宝跟微信都推出了自己更新的刷脸设备 这是中国银联也开始战略规划准备迈进人脸识别这个移动支付市场 那么最后谁才会是最后的大赢家呢 每个行业 似乎都有相生相克的行业对手 他们之间的每一次交手 都能成为
  • 睿智的目标检测56——Pytorch搭建YoloV5目标检测平台

    睿智的目标检测56 Pytorch搭建YoloV5目标检测平台 学习前言 源码下载 YoloV5改进的部分 不完全 YoloV5实现思路 一 整体结构解析 二 网络结构解析 1 主干网络Backbone介绍 2 构建FPN特征金字塔进行加强
  • AD629测量负载电流的电路原理详解——精妙绝伦的电路设计

    AD629是ADI公司的一款精密差动放大器 可以承受最大270V的共模电压 使用AD629测量负载电流可以实现在有效抑制共模电压的同时放大差模电压以测量负载电流 如果要测量一个很小的差模信号 很多工程师的第一反应肯定是想到使用仪表放大器 然
  • stat 命令 – 显示文件的状态信息

    stat 命令的功能是用于显示文件的状态信息 Linux 系统中每个文件都有三个 历史时间 最后访问时间 ATIME 最后修改时间 MTIME 最后更改时间 CTIME 用户可以使用 stat 命令查看到它们 进而判别有没有其他人修改过文件
  • unity AR开发中遇到的一些错误总结

    1 Vuforia initialization failed 错误提示如下 Vuforia initialization failed UnityEngine Debug LogError Object Vuforia VuforiaAb
  • JDBC 注册数据库驱动语句

    先附上Microsoft SQL Server JDBC Driver 官方下载地址 https www microsoft com zh cn download driver aspx 初学JDBC 由于数据库软件的不同 我不能按着书上的
  • docker安装及修改默认镜像下载路径和配置加速器

    官方安装 Install Docker Engine on Ubuntu Docker Documentation 镜像存储迁移 Ubuntu20 04修改docker镜像存储位置并进行数据迁移 EastWood001 博客园 cnblog
  • C++运算符的重载

    前言 运算符重载是编译器提供给用户自定义的一种更方便的工作方式 定义 其实就是重新定义一些运算符的意思的 比如是让加法可以在类之间进行 当然我们要使用到关键字operator 话不多说 直接上代码 class Stu public frie
  • 华为HCIA-Datacom学习笔记——OSI数据链路层

    系列文章目录 第一章 网络的定义和网络的历史 第二章 数据交换传输形式 第三章 OSI物理层 第四章 OSI数据链路层 文章目录 系列文章目录 第一章 网络的定义和网络的历史 第二章 数据交换传输形式 第三章 OSI物理层 第四章 OSI数
  • Idea常用插件

    Jrebel 热部署插件 修改代码编译就生效 节省大量重启服务时间 热部署支持修改方法代码 方法定义 类定义 接口定义 包括swagger文档 修改资源文件 修改mapper xml 需配合JRebel MybatisPlus插件一起使用
  • QT中设置字体和更改字体颜色

    QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体 首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont 将setFontButton添加到布局中 并通过connect 设置与setFon
  • golang多版本管理工具g使用(windows)

    1 下载地址 https github com voidint g releases 2 设置环境变量 G MIRROR 值为 https golang google cn dl 由于国内无法自由访问Golang官网 导致查询及下载go版本
  • 关于vs引用nuget包出错的解决办法(自己摸索)

    关于vs引用nuget包出错的解决办法 问题来源 解决办法 问题来源 vs2015在引用不同的版本的nuget安装包时会出现如下提示 An error occurred while retrieving package metadata f
  • C++编译时多态和运行时多态

    编译时多态 运行时多态 两种多态的优缺点 多态就是指一个基类指针根据所指对象的不同而有不同的功能和行为 编译时多态 编译时多态 又叫静态多态 早绑定 编译时多态基于template 模板 的具现化与函数的重载解析 这种多态在编译期进行 因此
  • UE4 C++ 的SpawnActor

    UE4 C 的SpawnActor Fill out your copyright notice in the Description page of Project Settings pragma once include CoreMin
  • Python新手入门——Jupyter notebook 学习使用

    目录 1 环境配置 2 启动 3 主页面 2 1 修改默认目录 4 基本功能 5 进阶功能 5 其余资源网站 1 环境配置 进入Anaconda Prompt 进行环境配置 conda install n pytorch ipykernel
  • 数据压缩(13):AR模型

    一 AR模型 自回归模型 二 AR模型参数的估计 1 AR 模型参数和自相关函数的关系 2 Y W 方程的解法 L D 算法 3 AR 模型参数估计的各种算法的比较和阶数的选择 三 举例及MATLAB实现 例1 题a 利用 MATLAB实现
  • Java的类名与文件名必须一致

    1 Java保存的文件名必须与类名一致 2 如果文件中只有一个类 文件名必须与类名一致 3 一个Java文件中只能有一个public类 4 如果文件中不止一个类 文件名必须与public类名一致 5 如果文件中不止一个类 而且没有publi
  • RHEL7计划任务和日志管理

    本节所讲内容 at 定制单次执行的计划任务 cron定制周期性计划任务 配置脚本实现周期性任务 配置公司内网服务器每天自动开关机 Linux系统日志记录规律 自定义日志记录方式 配置远程收集日志服务器 计划任务 at 只能执行一次 语法 a
  • 电商项目完成的BUG调查原因和解决方案

    这是我来到浙大网新恒天后 第一个完成的项目 在完成项目后 我总结了那些自己感觉重要的BUG 第一项目为电商项目 1 BUG系列一 界面销毁时 未关闭广播 dialog等 崩溃 Bug现象 Bug 85778 同一个账号 两部手机登陆 第一个