一、前言
隨著項(xiàng)目版本的迭代,用戶數(shù)量的迅速增長,app或多或少會出現(xiàn)bug。一般我們會使用友盟、Bugly、TalkingData等等統(tǒng)計(jì)工具來統(tǒng)計(jì)線上bug的情況。本篇文章主要闡述,如何從代碼被混淆之后的錯(cuò)誤日志中,來定位錯(cuò)誤代碼的博文。
二、統(tǒng)計(jì)工具之坑Mapping文件上限為10M
用過統(tǒng)計(jì)工具的同學(xué)應(yīng)該知道,當(dāng)線上App出現(xiàn)bug之后,我們會去統(tǒng)計(jì)工具“錯(cuò)誤列表”的錯(cuò)誤日志中尋找錯(cuò)誤代碼來源(不同統(tǒng)計(jì)工具中統(tǒng)計(jì)文案可能不同,此處以友盟為例)。上線之前大家都會對代碼進(jìn)行混淆及應(yīng)用包加固等等操作,因此錯(cuò)誤列表的錯(cuò)誤日志會出現(xiàn),錯(cuò)誤日志無法定位的問題。如下圖所示:

一般遇到此情況我們會到..../app/build/outputs/mapping/normal下找到Mapping.txt,將該文件上傳來定位錯(cuò)誤代碼行數(shù)。但是隨著版本迭代,Mapping.txt文件會逐漸增大,你可能在上傳代碼時(shí)會遇到以下情況:

Android自帶查看混淆錯(cuò)誤日志工具
出現(xiàn)以上問題,如何解決呢?按照經(jīng)驗(yàn)來說,Google應(yīng)該會提供工具來解決混淆的問題。于是查閱資料我發(fā)現(xiàn)原來Android studio是查看混淆錯(cuò)誤日志工具,定位查找混淆代碼的步驟如下所示(這里我以Mac為例):
第一步:查找proguardgui文件
1.在Android studio菜單欄中點(diǎn)擊"File->Project Structure"或“File->Other Setting-->Project Structure”來找到SDK目錄

2.使用命令行“cmd /Users/XX/Library/Android/sdk” 或手動選擇文件夾進(jìn)入
補(bǔ)充mac中快速查找方式:選擇訪達(dá)中“前往->前往文件夾”輸入“/Users/XX/Library/Android/sdk”。

3.打開proguardgui文件
方法一:找到“sdk-> tools ->proguard-> bin->proguardgui.sh”文件,將該文件直接拖入終端中;

方法二:找到“sdk-> tools ->proguard-> lib->proguardgui.jar”文件,雙擊打開文件。

4.查看錯(cuò)誤日志
1.點(diǎn)擊“ReTrace”;
2.點(diǎn)擊“Browse”,選中項(xiàng)目工程下..../app/build/outputs/mapping/normal/mapping.txt;
3.將錯(cuò)誤日志中復(fù)制粘貼到“Obfuscated stack trace”下的內(nèi)容區(qū)域中;
4.點(diǎn)擊右下角“ReTrace!”,即可定位錯(cuò)誤代碼。
