android - Google Play 控制台崩溃报告 - 多个 OR

标签 android google-play-console bug-reporting

为什么我的生产应用崩溃报告(位于“Android Vitals”/“ANR 和崩溃”中,然后选择任何崩溃以查看堆栈跟踪)的 Google Play 控制台包含大量 OR在堆栈跟踪中?

这是什么意思?这 12 种方法中哪一种实际上导致了崩溃?为什么报告如此不清楚?

有没有办法获得准确的方法名称,最好是报告中的行号? (我已在“反混淆文件”下添加了映射文件)。

enter image description here

最佳答案

原因是您使用 Proguard 来缩小和混淆代码(到目前为止一切顺利),并且 Proguard 尽可能多地重用相同的方法名称(即,只要方法的签名不同)尽量减少必须使用的字母数量。因此,缩小后的代码很可能在每个类中包含十几个名称为“a”的方法,而堆栈跟踪仅提供方法名称,而不是其签名,因此不幸的是不可能知道这十几个“a”方法中的哪一个正在被调用,因此反混淆工具为您提供了所有可能性。

您可以自定义 Proguard 配置以避免太多冲突,从而使您更轻松地进行调试,但这将以应用程序的大小为代价。

编辑:使用 -useuniqueclassmembernames 标志来避免这些 OR。您可以查看ProGuard manual了解更多详情。

关于android - Google Play 控制台崩溃报告 - 多个 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792480/

相关文章:

c++ - 如何为 gcc-trunk 报告这个 ICE

android - 使用对象而不是字符串处理 AsyncTask

android - 使用 KitKat 存储访问框架后打开 Google Drive File Content URI

request - 我们检测到您的应用在一个或多个应用或 APK 包的 list 文件中包含请求旧外部存储标记

android - 错误 : Unknown validation VALIDATE_APP_MESSAGE_NOT_PAID in Google Play Developer Console

java - 安卓错误报告

bugzilla - 从 bugzilla 大量导出附件

android - <include> 标签内 EditText 的奇怪行为

android - Android 9 (Pie) 中的 java.lang.NoClassDefFoundError

新更新 : apk that is not signed with the upload certificate 的 Android App Sign 问题