分析v4未捕获的异常和proguard

时间:2014-05-16 04:14:15

标签: android google-analytics-api google-analytics-v4

我在使用proguard构建的Android应用上使用Google Analytics v4 API。由此产生的崩溃报告是神秘的。例如,`NullPointerException(@a:t:-1){main}'

1)我可以在不猜测的情况下找到这次崩溃的确切位置吗?

2)如何提高崩溃报告的可读性? documentation显示了如何设置自定义异常报告器,这是有道理的。但是,它也说明了

  

永远不要将异常消息(e.getMessage())发送给Google Analytics,因为它可能包含个人身份信息。

如果不是消息,我可以使用哪些异常字段来生成崩溃报告,让我通过proguard找到崩溃的位置?

3 个答案:

答案 0 :(得分:5)

除了@aleph_null之外,你应该将这两行添加到你的proguard配置文件中以保留你的行号,否则你总是在异常消息中看到-1。

-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

答案 1 :(得分:1)

一些事情:

  1. Proguard会为您执行的每个编译生成一个raname映射。如果您将这些文件保存在某处,则可以自行映射堆栈。
  2. 如果您只是在本地计算机上调试应用程序,请尝试禁用proguard。
  3. 我认为这里主要关注的是不应将个人身份信息发送给Google。如果你能以某种方式解析堆栈跟踪的前2或3类,那么事情是否有效?
  4. 随意提出更详细的问题,我会尽力提供帮助。

答案 2 :(得分:1)

解决方案是覆盖StandardExceptionParser以报告根本原因的包名称。有关详细说明,请参阅my blog post