Proguard mapping文件的理解及Decode 堆栈信息

在Android应用发布时,通过Proguard混淆可以提高代码安全性。当出现错误堆栈信息时,由于混淆,定位问题变得困难。通过保留mapping文件,可以解析堆栈信息。例如,给定的堆栈信息中,通过mapping文件找到DashboardModel.java的buildLoadDataRequest方法在混淆后的位置。Proguard提供了retrace工具或GUI界面,帮助将混淆的堆栈信息转换为可读形式,便于调试。
摘要由CSDN通过智能技术生成

Release出去的产品如果出现了问题, 客户给了堆栈信息,由于我们的Android apk都是经过Proguard进行混淆过的, 那么如何才能还原当时的情景呢,至少我们应该知道是代码哪里出了错吧。。。

       首先,每个release版本出去,必须要保留当时的mapping文件,这对于事后追踪bug很有必要,比如我们的产品有这样的文件:attnav-mapping-5.5.3.2.8402166.txt, 每个release 版本都会有这样的文件。那么问题来了,如何看这些文件呢。

     比如, 客户报出了这样的堆栈信息:

    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.containsKey(java.lang.String)' on a null object reference
       at com.telenav.scout.module.dashboard.DashboardModel.buildLoadDataRequest(DashboardModel.java:25546)
       at com.telenav.scout.module.BaseFragmentActivityHelper$1.com.telenav.scout.module.BaseModel.baseDoInBackground(BaseFragmentActivityHelper.java:1156)
       at com.telenav.scout.module.BaseFragmentActivityHelper$1.loadInBackground(BaseFragmentActivityHelper.java:42)
       at android.support.v4.content.AsyncTaskLoader$LoadTask.android.support.v4.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:1296)
       at android.support.v4.content.AsyncTaskLoader$LoadTask.doInBackground$42af7916(AsyncTaskLoader.java:42)
       at android.support.v4.content.ModernAsyncTask$2.call(ModernAsyncTask.java:128)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
       at java.lang.Thread.run(Thread.java

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值