Android通过Mapping文件还原代码错误

前言

通常我们在发布线上的App时,都会对代码进行混淆。三方平台如Bugly、Umeng、等等平台,都会收集到一些错误信息。当我们每次打包结束的时候都会在app/build/outputs/mapping/目录当中生成与其当前版本相对应的mapping 文件。以供我们分析相关的错误信息。

示例

如在三方平台取的错误日志信息,这样的错误日志很不便我们分析问题,这个时候我们就需要借助 proguard 来分析具体的错误日志。Produncts 官方文档:https://www.guardsquare.com/en/products/proguard),这个时候我们就直接使用Android 提供的 proguardgui 工具直接分析相关的混淆错误日志信息。

java.lang.IllegalArgumentException: The surface has been released
    at android.media.MediaPlayer._setVideoSurface(Native Method)
    at android.media.MediaPlayer.setSurface(MediaPlayer.java:839)
    at cn.jzvd.d.a(TbsSdkJava:97)
    at cn.jzvd.c$a.handleMessage(TbsSdkJava:153)
    at android.os.Handler.dispatchMessage(Handler.java:109)
    at android.os.Looper.loop(Looper.java:207)
    at android.os.HandlerThread.run(HandlerThread.java:65)

使用

  • 双击 打开AndroidSDK\tools\proguard\bin 目录当中的 proguardgui.bat 文件,如图(1-1)


    图1-1
  • 选择并点击左侧菜单栏当中的 ReTrace 按钮 - -> 点击 Browse... 文件选择本地的 mapping 文件

  • 将错误日志复制至 Obfuscated stack trace 菜单栏当中,点击右下角的 ReTrace 按钮 即可解密混淆过的错误日志信息


    如图(1-2)

至此我们就完成了混淆文件日志的解密,从而方便我们的使用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容