Google Play 控制台堆栈跟踪

Google Play Console Stack Trace

在 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.run(MainActivity.java:0) at java.lang.Thread.run(Thread.java:818)

我不明白堆栈跟踪中的 <OR> 语句是什么。 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

我相信你 运行 遇到了这个问题中回答的同一个问题:Android ProGuard return Line Number

Proguard 默认不保留行号。

How to properly understand this stack trace?

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