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)
我不明白堆栈跟踪中的 <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
【问题讨论】:
你能发布你的 proguard 配置吗?它是否保留行号? 嗯,我好像用的是默认的proguard文件。 在这里看起来像同样的问题+解决方案:***.com/questions/10158849/… 【参考方案1】:我相信您在这个问题中遇到了同样的问题:android ProGuard return Line Number
Proguard 默认不保留行号。
【讨论】:
【参考方案2】:如何正确理解这个堆栈跟踪?
字面意思是“或”。当为其中的某些行创建堆栈跟踪时,有几种可能性(LineNumberTable 丢失或已损坏?)因此使用此前缀打印它们。
【讨论】:
以上是关于Google Play 控制台堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章