首页 > 其他分享 >Android混淆后的bug日志通过mapping文件找对应行号

Android混淆后的bug日志通过mapping文件找对应行号

时间:2024-03-15 19:33:54浏览次数:18  
标签:文件 mapping bug proguard 行号 Android 日志

背景

由于项目中提测以及线上的apk都是经过混淆处理的,因此拿到日志后也无法正常查看崩溃日志的行号

image

这个原因是因为混淆了文件,输出的日志是对应不上源文件的,为了正确找到行号需要用到mapping.txt文件

配置开启保留行号和源文件

要想利用mapping文件找到对应的行号,则还需要在混淆文件中配置开启保留行号和源文件

image
这个其实默认是注释的直接放开注释的 这个要是不放开还是会

# Uncomment this to preserve the line number information for
# debugging stack traces.
-keepattributes SourceFile,LineNumberTable

这个要是没加上就算通过mapping找也会找不到对应的行号

使用proguard工具

先说下mapping文件这个,打包的时候会在bulid目录产生,每次打包发布记得保留好这个文件做好版本记号,方便排查
image

这个需要用到proguard工具了,sdk就带有这个工具了。前往sdk的目录/Android/sdk/tools/proguard/bin目录,目录下的文件如下,mac所以文件后缀是sh,windows对应的后缀是bat,无论哪个系统双击proguardgui就行了
image
执行后会开启一个工具,点击ReTrace,选好mapping文件,填入carsh日志信息,点击ReTrace按钮。就会看到解析的结果

image

  • 解析发现行号还是错误的不是正确的,这个时候就无语了。
  • 这回只需要去下载proguard的最新版就好了 github 找个稳定的版本就行了
  • 下载完成解压出来
    image
    和上面操作步骤一样mac打开proguardgui.sh,windows打开proguardgui.bat

image

到此就正确找到carsh的行号了

Android线上bug 通过mapping文件找对应行号

标签:文件,mapping,bug,proguard,行号,Android,日志
From: https://www.cnblogs.com/zuojie/p/17605513.html

相关文章

  • Android 辅助功能 -抢红包(三)
    Android辅助功能-抢红包(三)本篇文章继续讲述辅助功能.主要通过监听通知栏红包消息,来跳转聊天页面,并自动回复对方"谢谢".上篇文章我们讲述了监听notification,跳转聊天界面.具体可查看:Android辅助功能-抢红包(二)1:使用monitor抓取id.打开androiddevicemonitor......
  • 分享两款常用的Android手机投屏软件
    1.AnLink下载链接:https://cn.anlinksoft.com/仅Windows可用,界面非常友好,文件传输也方便小米新系统澎湃会无法点击  2.scrcpyscrcpy同时适用于GNU/Linux,Windows和macOS。 仅显示设备屏幕,轻量化,其他操作需要命令行输入或快快捷键下载链接:https://github.com/Genymobi......
  • Android对apk进行签名
    1.生产签名文件keytool-genkey-v-keystoreesg.jks-keyalgRSA-keysize2048-validity10000-aliasesgkeytool:这是Java提供的一个命令行工具,用于管理密钥库和证书。-genkey:这个选项告诉keytool生成一个新的密钥对。-v:这个选项使keytool在执行时输出详......
  • Android中的Binder机制
    Binder机制是Android操作系统中的一种IPC(进程间通信)机制,它允许不同进程之间进行数据交换和通信。Binder机制是AndroidIPC机制的核心,它基于Linux内核的Binder驱动实现,提供了一种高效、快速的跨进程通信方式。###Binder的工作原理Binder机制的工作原理可以概括为以下几个步骤......
  • Android11 FallbackHome启动和关闭流程分析
    Android7.0引入了新特性:DirectBootMode,设备启动后进入的一个新模式,直到用户解锁(unlock)设备此阶段结束。在这个模式下,系统调用resolveHomeActivity找到的是FallbackHome,而不是我们的桌面应用。所以系统开始启动的是FallbackHome这个"桌面"。03-1316:58:41.35943......
  • Android 11 SystemServer启动流程
    在Android11Zygote启动流程有提到,Zygote通过forkSystemServer,fork出SystemServer进程,并在SystemServer进程中调用handleSystemServerProcess返回一个Runnable //...... /*Forchildprocess*/if(pid==0){if(hasSecondZygote(abiList))......
  • Android 11 Zygote启动流程
    Zygote进程由init进程启动,是systemserver进程和APP进程的父进程先看一下rc文件,以init.zygote32.rc为例servicezygote/system/bin/app_process-Xzygote/system/bin--zygote--start-system-serverclassmainpriority-20userrootgrouprootr......
  • Android NDK入门:在应用中加入C和C++的力量
    目录​编辑引NDK的设计目的与Java/Kotlin的结合使用场景开发流程设置项目以支持NDK编写本地代码使用JNI连接本地代码和Java/Kotlin代码编译和运行你的应用附 引自诩方向是android方向的移动端开发工程师,却从来没有真正仔细了解过NDK,这里就详细的整理了解一下n......
  • 在 Android 上恢复已删除文件的 5 种简单方法
    您可能会因为意外删除、未完成的Android更新、手机意外关机等原因而丢失Android上的重要数据。新技术的发展使许多手机功能或程序能够从内部恢复丢失的数据。在Android上恢复已删除文件的5种简单方法然而恢复成功率的不确定性也成为人们克服数据丢失困境的重要考虑......
  • 猫头虎分享已解决Bug || 网络攻击(Network Attack):DDoSError, NetworkIntrusion
    博主猫头虎的技术世界......