1. 程式人生 > >(一) 電商專案完成的BUG調查原因和解決方案

(一) 電商專案完成的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;修改後如圖

相關推薦

專案完成BUG調查原因解決方案

是我來到浙大網新恆天后,第一個完成的專案。在完成專案後,我總結了那些自己感覺重要的BUG.第一專案為電商專案 1.     BUG系列一:介面銷燬時,未關閉廣播, dialog等,崩潰 ·        Bug現象 Bug 85778:同一個賬號,兩部手機登陸,第

【JVM學習筆記】jvm初體驗-記憶體溢位問題分析及解決方案

####1、開始 建立Main類和Demo類,在Main類的main方法中建立List,並向List中無限建立Demo物件,造成記憶體溢位, 並輸出記憶體溢位錯誤檔案在專案目錄下,為了使等待時間減小,設定執行堆記憶體大小。 ####2、建立Demo類 package com.ch

javaweb面試總結二、專案

電商架構:https://blog.csdn.net/yangbutao/article/details/12242441九個模組:https://blog.csdn.net/belvine/article/details/79400813電商類目:https://blog.

130242014019-2-“系統某功能模塊”需求分析與設計實驗課小結

img 商品 歷史記錄 模型 需求分析 今天 ges 關鍵字搜索 識別 1)選題討論 今天主要討論的是電商系統中某一個功能模塊的分析,一個電商系統中有很多個功能模塊,如搜索、登錄、購物車等等。我們組選取了其中的最經常使用的搜索功能進行討論。 2)用戶故事討論 1.用戶可

130242014013-2-的商品分類模塊開發

構建 自身 交流 能夠 例如 實驗 什麽 漸進 子項目 1.選題討論 我們小組主要討論的是電商系統的商品分類功能模塊,商品分類模塊如果真正按照淘寶那種數據量和規模來設計的話,其實很復雜也很難,需要認真討論和研究很多。 2.用戶故事討論 (1).用戶可以通過正常一個大型商品常

1302420140302系統某功能模塊”需求分析與設計實驗課小結

img .com http 二級 電商系統 src 意義 感覺 用戶   這次課老師為了讓我們更加理解敏捷開發,特意請來了王經理給我們介紹。王經理通過讓我們分組,以小組的方式來體驗一下敏捷開發。   分組才用了報數,數字相同的為一組。小組裏沒有明確的分工,大家一起討論,再由

1302420140672系統購物車功能模塊”需求分析與設計實驗課小結

京東 blog 每次 有一個 並且 小結 應該 快速 後臺 1)分組情況介紹,小組分工合作情況介紹。 陳鋒、劉鑫(用戶故事的細化,即功能設計) 高忠傑、羅成龍(參與系統的類圖設計及上臺匯報) 顏貴榮、李清燦(參與用戶故事的討論與設計) 王紹華、丁天奇、林偉領(參與系統的類圖

130242014014-2-“系統商品詳情模塊”需求分析與設計

說明 團隊 eight 部分 展開 關於 工作 要求 技術 1、描述課程的小組討論工作的內容,要求以下每個小點都要分成情況介紹、老師點評、點評後的修改、心得體會和經驗總結幾個方面來展開。 小結內容,必須包含且不限於以下內容(格式和行文風格不限制): 1)分組情況介紹,小組分

Spring整合Struts2Hibernate+Maven之Maven專案建立

趁著畢設的功夫,寫一些東西。也算是記錄個人平時畢設完成的過程。 建立專案 工具:intellij idea+JDK1.6+Maven 第一步:New Project ->點選左側maven ->勾選Create fromarchetype 後選擇maven-archet

Flutter 擴充套件NestedScrollView Pinned頭引起的bug解決

為什麼想要自己來定義NestedScrollView呢? 要從我提交的2個issue開始講: 1.當中的Pinned為true的Sliver元件對body裡面滾動元件的影響 2.當在裡面放上tabview,並且tab是快取狀態的時候,會出現滾動會互相影響的問題 沒有任何進展,用一個表情表達Flutte

Spring Boot 的簡單教程 Spring Boot 專案的建立

一. 簡單介紹一下Spring Boot 世界慣例,在學習一個框架之前,我們需要了解一下這個框架的來歷。 下面我們引用一下百度百科的解釋。 Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程

mybatis-----建立maven專案

第一步:建立新專案,按圖如下: 接下來: 接下來照著填: 接下來:下一步,下一步,一直到建立: 建立完成。 後續: 第一步:修改maven專案中的pom.xml檔案 程式碼如下: <?xml version="1.0" encoding=

Weex 學習筆記- 搭建Weex專案

Weex 學習(一)- 搭建專案 從今天開始學習 Weex 的技術。記錄其中過程遇到的問題。好了,開始挖坑之路! 一、 首先根據 Weex官方文件 開始! 根據以下命令全域性安裝一個Weex控制檯:we

springboot學習小筆記---新建springboot專案

springboot學習中會遇到一些細節上的問題,總結一下 idea新建springboot專案 當你新建springboot專案是,有一步驟你費解過沒? 在使用Spring Initializr 建立專案時,這些需要怎麼填,Group(陣列)應該怎麼填,Artifact(標識)應

SpringBoot 學習筆記 新建SpringBoot專案

環境/版本: 開發工具:Eclipse java 2018-09 SpringBoot: 2.0.0.RELEASE maven: 3.5.3 開始: 建立專案: 訪問Spring Initializr,按圖1.1所示輸入Group,Artifact會自動生成對

python資料分析與挖掘學習筆記6-網站資料分析及商品自動推薦實戰與關聯規則演算法

這一節主要涉及到的資料探勘演算法是關聯規則及Apriori演算法。 由此展開電商網站資料分析模型的構建和電商網站商品自動推薦的實現,並擴充套件到協同過濾演算法。 關聯規則最有名的故事就是啤酒與尿布的故事,非常有效地說明了關聯規則在知識發現和資料探勘中起的作用和意義。 其中有

從零開始使用Maven建立Maven專案

最近在學習Maven,以前倒也不是沒有用過,但是總是沒有深入去了解,現在分享一下最近學習的心得及Maven的用法,希望能幫到初學者。 一. 首先,Maven是什麼?網上搜到的通俗點的說法是這樣的: Maven是一個專案構建和管理的工具,提供了幫助管理 構建、文件、報告、依賴

SpringBoot快速開發【建立專案

一、工具 maven intelliiJ IDEA postgresq redis 二、開發環境 Java 1.8 Spring Boot 2.0 三、建立工程 1.選擇新建project 2.選擇spring initializr,點選next 3.填寫專案

Django技術詳解建立Djangon專案並理解目錄結構

建立專案 1:開啟命令列,進入想要安置專案的目錄 2:命令列輸入:django-admin manage.py startproject myblog;如果沒有報錯,證明專案建立成功 專案目錄介紹 mamage.py:與專案進行互動的命令列工具集

JavaWeb快速入門——新建JavaWeb專案

    今天是暑期實訓的第三天,上午繼續昨天未講完的任務java,比如:java的異常處理、java的集合等其它java常用知識,具體講解連結如下。下午開始將JavaWeb伺服器端程式開發,包含:處理請求和展示返回回來的資料。其中,處理請求分為四步:1、建立javaweb工程