會在名稱中出現.a 或是.b 等等無法看出到底是什麼class出錯的問題,
例如下圖
恭喜你,代表你的APK有成功透過proguard 將程式碼進行混淆,那我要怎麼找回對應呢?
如果你還有留著mapping.txt那就有救,但每次包APK時,mapping.txt的內容都會覆寫,
所以記得保留每一次的mapping.txt版本。
在SDK目錄下有一個好用的工具,叫做retrace ,以Mac來說,它在以下目錄,
也就是SDK下的tools/proguard/bin。
/Users/username/Library/Android/sdk/tools/proguard/bin
首先我們先將錯訊訊息COPY & PAST 到文字檔,並存檔叫 myexception.txt
(名字開心就好)
然候移到mapping.txt目錄下,輸入以下指令
./retrace.sh -verbose mapping.txt myexception.txt
接著就會輸出還原後的class名稱
參考資料:
沒有留言:
張貼留言