gpt4 book ai didi

android - 通过将 proguard 规则映射文件上传到 google play 控制台来反混淆生产 Android 错误

转载 作者:行者123 更新时间:2023-11-29 15:00:34 30 4
gpt4 key购买 nike

刚从 Play 商店安装应用程序后,我发布的应用程序在打开时突然崩溃。但问题是,当我在 Android Studio 中以 Debug模式运行代码时,应用程序不会崩溃。

当我在 google play console 上查找崩溃错误时,我看到了一些混淆代码,不容易从错误中猜测出来。

java.lang.NullPointerException: 
at com.wl.model.a.b (Unknown Source)
at com.wl.model.a.a (Unknown Source)
at com.wl.model.a$1.a (Unknown Source)
at b.w$a.b (Unknown Source)
at b.a.b.run (Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:588)
at java.lang.Thread.run (Thread.java:818)

从错误中我知道有一些空指针异常,但无法追踪其来源。

Google Play 控制台说上传去混淆文件以去混淆错误代码。

现在我的问题是我无法在我的项目源文件夹中找到反混淆文件。

我尝试上传 pro-guard 规则文件,但 google play 控制台拒绝了它。

请提供我可以查找去混淆文件的路径或位置(它通常存在的位置)。

最佳答案

对像我这样的初学者的一些详细解答和解释-

要反混淆的映射文件的位置:

ProGuard saves the file in the app app/build/outputs/mapping/FLAVOR/release/mapping.txt.

/app/build/outputs/mapping/release/

感谢@chrjs answering

一些问题:

每次使用 ProGuard 创建发布版本时,

ma​​pping.txt 文件都会被覆盖,因此请先备份该文件,然后再创建新版本。这将有助于从您的应用程序的旧版本混淆堆栈跟踪。

除此之外,还有两种方法可以混淆您的代码:

<强>1。将您的 mapping.txt 文件上传到 Google play 控制台:

在 Google Play 上发布您的应用时,您可以为每个版本的 APK 上传 ma​​pping.txt 文件。然后,Google Play 将对来自用户报告问题的传入堆栈跟踪进行去混淆处理,以便您可以在 Google Play 控制台中查看它们。

<强>2。使用本地sdk工具retrace.sh/retrace.bat:

有时您想运行应用程序的发布版本(通过将构建变体更改为发布并运行它)来交叉检查和修复错误,这样它就不会在生产中发生(当发布到 play-store 时)。

要自己将混淆的堆栈跟踪转换为可读的堆栈跟踪,请使用retrace 脚本(Windows 上为retrace.batretrace.sh 在 Mac/Linux 上)。

它位于 <sdk-root>/tools/proguard/bin/目录。

<sdk-root>是安装所有 android 库和 sdk 的地方。

该脚本采用 ma​​pping.txt 文件和您的堆栈跟踪,生成一个新的、可读的堆栈跟踪

命令语法:

retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

例如:

retrace.bat -verbose mapping.txt obfuscated_trace.txt

我更喜欢本地版本的混淆,因为它可以很方便地预先检查生产错误。

关于android - 通过将 proguard 规则映射文件上传到 google play 控制台来反混淆生产 Android 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46704756/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com