背景及現(xiàn)象描述
- 公司自己開發(fā)的app,已上線使用褂删;
- 該異常只有部分oppo手機(jī)用戶反饋飞醉,在華為,三星等其它品牌屯阀,相同版本號的系統(tǒng)上都沒問題缅帘;
- app中開啟了捕獲異常的日志功能,但并沒有捕獲到該異常难衰;
- 在這部分反饋問題的oppo手機(jī)上钦无,也是有時出現(xiàn)有時正常;
- 發(fā)生該異常時盖袭,點(diǎn)擊取消無反應(yīng)失暂,點(diǎn)擊立即清除對話框消失,然后立刻又彈出來(后來發(fā)現(xiàn)是每一兩秒就會彈出一個該對話框)苍凛;
-
用公司測試機(jī)及oppo真機(jī)云測過程中趣席,都沒有復(fù)現(xiàn)該異常兵志;
原因分析
面對這些現(xiàn)象醇蝴,發(fā)現(xiàn)以往的修復(fù)bug的經(jīng)驗都不起作用。于是想罕,默默的打開了百度悠栓,百度結(jié)果一看霉涨,一堆在oppo手機(jī)上遇到過這個問題的開發(fā)者提問,還有微信惭适,支付寶笙瑟,甚至oppo系統(tǒng)自帶的軟件頻繁報這個異常錯誤。而提出的解決方案癞志,大同小異往枷,要么是官網(wǎng)回答,請?zhí)峁└鼮橥暾男畔⑵啾缓鬅o下文错洁,要么是讓用戶進(jìn)應(yīng)用設(shè)置,清除緩存戒突,刪除數(shù)據(jù)屯碴,甚至還有格式化手機(jī),恢復(fù)出廠設(shè)置的膊存。結(jié)果一試导而,還真的有點(diǎn)效果,用戶能正常使用了隔崎,但是用不了多久今艺,又出現(xiàn)了。面對這樣的情況下仍稀,于是乎洼滚,把這口黑鍋甩給了oppo系統(tǒng),給市場方的答案是技潘,系統(tǒng)bug遥巴,微信,支付寶享幽,都遇到過铲掐,不是app的關(guān)系,遇到這種情況值桩,只有清除數(shù)據(jù)摆霉,還是不行的話,那就恢復(fù)出廠設(shè)置奔坟。并且携栋,本著做好事不留名的人道主義精神,筆者將這個oppo的“bug”咳秉,通過官方開發(fā)者公眾號婉支,反饋給了人工客服。順便吐槽一句澜建,體驗感真不咋地向挖,排隊三小時蝌以,一直提示筆者前面多少人排隊,最后終于到了何之,結(jié)果還是一個客服同時跟好多個客戶溝通跟畅,每說一句話,都要等半天才回應(yīng)溶推。最后徊件,好不容易溝通完,說的是測了一下蒜危,沒有復(fù)現(xiàn)庇忌,會繼續(xù)跟進(jìn)測試,讓筆者等郵件通知舰褪,結(jié)果到今天為止皆疹,也再無音訊。
但是占拍,反映該異常的手機(jī)用戶從一臺略就,到兩臺,到三臺晃酒,每天市場人員都在問表牢,于是開始換了思路想,就算是網(wǎng)上說的那樣oppo系統(tǒng)的關(guān)系贝次,那也有原因引起觸發(fā)這個問題崔兴,畢竟同手機(jī)上其它那么多應(yīng)用,都能正常運(yùn)行蛔翅。
發(fā)現(xiàn)及分析問題
思路:收集問題用戶的信息敲茄,盡可能創(chuàng)造相同的測試環(huán)境,以復(fù)現(xiàn)該異常山析。于是堰燎,讓市場人員數(shù)收集了問題用戶的應(yīng)用設(shè)置界面截圖,以及“關(guān)于手機(jī)”的截圖笋轨。再在oppo開放平臺提供的真機(jī)遠(yuǎn)程云測功能(這功能還是比較香的)秆剪,選擇相同機(jī)型進(jìn)行真機(jī)測試。但是經(jīng)過反復(fù)測試爵政,還是沒能復(fù)現(xiàn)該異常仅讽。最后,注意到了用戶的一個細(xì)節(jié)設(shè)置钾挟。
對洁灵,就是這個允許自動啟動設(shè)置項,而系統(tǒng)異常提示又是提示的“***多次啟動失敗”等龙,似乎处渣,從名字里面能感受到一絲絲的關(guān)聯(lián)。于是蛛砰,真機(jī)測試時罐栈,打開該設(shè)置項開關(guān)。從新啟動app泥畅,皇天不負(fù)有心人荠诬,果然報該異常。按照該操作位仁,反復(fù)測試了多臺oppo手機(jī)及其它機(jī)型柑贞,最后發(fā)現(xiàn)其它系統(tǒng)手機(jī)無該異常,而oppo Android 10 會有該異常提示聂抢。
既然找到復(fù)現(xiàn)方法钧嘶,那就比較好辦了。接下來琳疏,利用oppo遠(yuǎn)程真機(jī)測試提供的日志功能有决,重現(xiàn)該異常前,獲取日志空盼,反復(fù)彈出該異常之后书幕,導(dǎo)出日志報告文檔。打開本地日志文檔揽趾,尋找答案台汇,直接以自己app包名為關(guān)鍵字進(jìn)行搜索。最后發(fā)現(xiàn)日志中篱瞎,反復(fù)拋出如圖異常
至此苟呐,基本已經(jīng)很明朗了,歸根結(jié)底俐筋,還是自己app中代碼引起的異常掠抬,或許只是oppo系統(tǒng),將異常拋出提示出來了而已校哎。當(dāng)然私蕾,最后發(fā)現(xiàn)是自己開啟的服務(wù)沒有做針對Android 8.0之后版本的適配,才導(dǎo)致了該異常的發(fā)生术奖。至于如何修復(fù)該異常蝠引,這里就不在多闡述了,網(wǎng)上一大堆抱怔。
總結(jié)
本文主要介紹筆者解決oppo系統(tǒng)提示的自己開發(fā)的app多次啟動失敗劣坊,嘗試清除歷史記錄來恢復(fù)這個異常提示。網(wǎng)上百度出來的方案一大堆屈留,大部分都是粘貼復(fù)制局冰,筆者不知道是不是真能解決测蘑,但至少這些解決方案,不適合自己的情況康二。最后還是通過數(shù)據(jù)分析碳胳,修復(fù)了該異常。
而對于oppo的該異常提示沫勿,筆者認(rèn)為有幾種可能:
- 如果是自己開發(fā)的app挨约,基本可以確定是自己代碼發(fā)生了異常;
- 如果是第三方app产雹,則該app版本出現(xiàn)了問題诫惭,更新安裝最新版本app;
- 有些網(wǎng)友提出恢復(fù)出廠設(shè)置后使用軟件出現(xiàn)了該異常蔓挖,這只是因為恢復(fù)出廠設(shè)置導(dǎo)致手機(jī)上的app回退到了以前的舊版本夕土,而該應(yīng)用的舊版本已經(jīng)不能正常使用,所以會出現(xiàn)該異常瘟判;
- 還有網(wǎng)友提出的解決方案是恢復(fù)出廠設(shè)置或者清除該app的數(shù)據(jù)或緩存隘弊。筆者認(rèn)為,跟恢復(fù)出廠設(shè)置沒有什么關(guān)系荒适,恢復(fù)出廠設(shè)置只是會讓用戶重新安裝該異常app梨熙,或者和清除緩存數(shù)據(jù)一樣,僅僅是針對由于該app產(chǎn)生的異常數(shù)據(jù)引起的該異常提示情況刀诬,而針對其它情況咽扇,是不會有效的。
以上僅代表個人觀點(diǎn)陕壹,如有異議质欲,歡迎大神們批評指正。