例如開啟proguard,編譯通過,但安裝後執行出錯,如何定位錯誤原因?
報的都是.a.c.b之類無法定位的東西。
在生成的mapping.txt裡邊一個個對照著找了,我一般不混淆關鍵類的名稱比如Activity和Service,報錯的時候就能定位到對應的類上,再根據混淆的名稱找到對應的被混淆類。 打個比方,收到的報錯訊息有void com.company.app.util.c.a(java.lang.String, java.lang.String),需要去mapping搜尋com.company.app.util.c,然後找到有「->a」結尾,void型方法,大致上就可以確定是哪個方法出現的錯誤,我一般找到這裡就大致反推一下是哪個地方會引發這個錯誤,嘗試修復看看之後的版本還是否存在這個錯誤,還有的話就繼續修。
在生成的mapping.txt裡邊一個個對照著找了,我一般不混淆關鍵類的名稱比如Activity和Service,報錯的時候就能定位到對應的類上,再根據混淆的名稱找到對應的被混淆類。
打個比方,收到的報錯訊息有void com.company.app.util.c.a(java.lang.String, java.lang.String),需要去mapping搜尋com.company.app.util.c,然後找到有「->a」結尾,void型方法,大致上就可以確定是哪個方法出現的錯誤,我一般找到這裡就大致反推一下是哪個地方會引發這個錯誤,嘗試修復看看之後的版本還是否存在這個錯誤,還有的話就繼續修。