本篇文章是写给那些在他们的应用中使用ProGuard并且需要从堆栈信息中进行调试的Android开发者。这是一种非常简单就将混淆的错误信息转化为可读的方法。
还原前
以下是ProGuard混淆过的堆栈信息:
Caused by: java.lang.NullPointerException at net.simplyadvanced.ltediscovery.be.u(Unknown Source) at net.simplyadvanced.ltediscovery.at.v(Unknown Source) at net.simplyadvanced.ltediscovery.at.d(Unknown Source) at net.simplyadvanced.ltediscovery.av.onReceive(Unknown Source) |
还原后
只要在命令行写一行命令,混淆都将会被移除,如下所示:
Caused by: java.lang.NullPointerException at net.simplyadvanced.ltediscovery.UtilTelephony.boolean is800MhzNetwork()(Unknown Source) at net.simplyadvanced.ltediscovery.ServiceDetectLte.void checkAndAlertUserIf800MhzConnected()(Unknown Source) at net.simplyadvanced.ltediscovery.ServiceDetectLte.void startLocalBroadcastReceiver()(Unknown Source) at net.simplyadvanced.ltediscovery.ServiceDetectLte$2.void onReceive(android.content.Context,android.content.Intent)(Unknown Source) |
如何还原堆栈信息
可以选择命令行或者GUI
GUI
1.打开
/tools/proguard/bin/proguardgui.bat
2.选择左边栏的
ReTrace
选项3.添加你的mapping文件和混淆过的堆栈信息
4.点击
ReTrace!
命令行
1.需要你的ProGuard的mapping文件和你想要还原的堆栈信息(如stacktrace.txt)
2.最简单的方法就是将这些文件拷贝到
/tools/proguard/bin/
目录3.运行以下命令
//Windows retrace.bat -verbose mapping.txt stacktrace.txt > out.txt //Mac/Linux retrace.sh -verbose mapping.txt stacktrace.txt > out.txt |
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦