Android混淆后的日志查看方法(mac)
注:这是本人常用方法,如下述方法有错误或更好的办法,请大佬评论指出,防止误导他人。收集日志用的友盟,混淆后的日志在友盟错误列表-错误详情-详细日志,
1.找到sdk目录,然后进入目录找到proguardgui.sh文件,“sdk-> tools ->proguard-> bin->proguardgui.sh”,将该文件直接拖入终端中; 会出现下图:
(图一)
2.点击图中1处按钮,会切换到当前的界面,然后点击2处按钮,添加mapping.text文件,mapping文件默认位于app/build/outputs/mapping/release/mapping.text,如果你是debug模式的包那就是debug/mapping.text,见下图:
3.然后将混淆后的日志粘贴到(图一)标3的框里,点击右下角 ReTrace!按钮,复原后的日志就会出现在标4的框里。
4.一般根据标4框里的信息基本可以定位到问题了,但是经常出现不能完全复原的情况,就像图一那样。
这时可以把错误包名复制到mapping文件中直接查找
比如图中 c.o.a.e.s.i(ToastUtils.java:8)报错,我们复制c.o.a.e.s到mapping文件中找方法名为i的行数
这里发现2处开始位置,37行和42行,都在ToastUtils类中,我们打开ToastUtils,找到这两行,如下图
从图中可以分析出来应该是context空指针了。
完毕
ps:这是我自己常用的方法,一般都可以定位到问题,尤其用了kotlin后,类似空指针这种的问题基本一眼就看出来报错位置了,要是有错误或者更好的办法,请大佬们指出来。