Google Play 控制台堆栈跟踪

Posted

技术标签:

【中文标题】Google Play 控制台堆栈跟踪【英文标题】:Google Play Console Stack Trace 【发布时间】:2017-10-24 13:18:33 【问题描述】:

在 Google Play 控制台中,我得到了以下异常跟踪。虽然我添加了反混淆文件,但行号显示为 0。

java.lang.NullPointerException: at com.ae.apps.common.managers.ContactManager.getContactIdFromAddress(ContactManager.java:0) at com.ae.apps.messagecounter.utils.MessageCounterUtils.sortThisMap(MessageCounterUtils.java:0) at <OR>.getMessageCountDegrees(MessageCounterUtils.java:0) at <OR>.getContactMessageList(MessageCounterUtils.java:0) at <OR>.convertAddressToContact(MessageCounterUtils.java:0) at <OR>.getIndexFromDate(MessageCounterUtils.java:0) at <OR>.getWeekStartDate(MessageCounterUtils.java:0) at <OR>.getMessageLimitValue(MessageCounterUtils.java:0) at <OR>.getCycleSentCount(MessageCounterUtils.java:0) at com.ae.apps.messagecounter.activities.MainActivity$1.run(MainActivity.java:0) at java.lang.Thread.run(Thread.java:818)

我不明白堆栈跟踪中的 &lt;OR&gt; 语句是什么。 ContactManager.getContactIdFromAddress() 只能从方法MessageCounterUtils.convertAddressToContact() 调用。

如何正确理解这个堆栈跟踪?

我相信我已经在上述方法中添加了必要的 Null 检查。

https://github.com/midhunhk/ae-apps-library/blob/master/app/src/main/java/com/ae/apps/common/managers/ContactManager.java#L377

【问题讨论】:

你能发布你的 proguard 配置吗?它是否保留行号? 嗯,我好像用的是默认的proguard文件。 在这里看起来像同样的问题+解决方案:***.com/questions/10158849/… 【参考方案1】:

我相信您在这个问题中遇到了同样的问题:android ProGuard return Line Number

Proguard 默认不保留行号。

【讨论】:

【参考方案2】:

如何正确理解这个堆栈跟踪?

字面意思是“或”。当为其中的某些行创建堆栈跟踪时,有几种可能性(LineNumberTable 丢失或已损坏?)因此使用此前缀打印它们。

【讨论】:

以上是关于Google Play 控制台堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章

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

了解 google play 给出的 ANR 堆栈跟踪

如何跟踪 Google Play 下载源

IntelliJ IDEA 中的堆栈跟踪控制台

Xcode 4.2/iOS 5 下控制台中没有异常堆栈跟踪?

如何将堆栈跟踪打印到控制台/登录 Cocoa?