我有一个正在生产中的应用程序,我正在使用 Firebase 记录错误和崩溃。最近,我一直在异常的堆栈跟踪中看到一些行,从 <OR>
开始。 .下面是直接从 Firebase 报告的异常中获取的示例(除了包名称):
Exception java.lang.NullPointerException: Attempt to invoke interface method 'void com.mycompany.myapp.managers.b$a.f()' on a null object reference
com.mycompany.myapp.managers.PermissionManager.getInstance (PermissionManager.java)
<OR>.checkPermission (PermissionManager.java)
<OR>.onRequestPermissionsResult (PermissionManager.java)
com.mycompany.myapp.activities.ShareImageActivity.onSaveShare (ShareImageActivity.java)
com.mycompany.myapp.activities.ShareImageActivity$3.onClick (ShareImageActivity.java)
我知道这不是常规堆栈跟踪,因为 onRequestPermissionResults
不打电话 checkPermission
和 checkPermission
不打电话 PermissionManager.getInstance
.
我认为这是 Android 出于安全考虑混淆堆栈跟踪的方式之一,但我找不到任何关于此的文档。有谁知道如何解释这个堆栈跟踪?
最佳答案
您在此处看到的表示崩溃报告此时无法确定实际对象。目前,Proguard 反混淆有一个已知的情况,其中目标对象可能不明确。如果您从类(class)中删除行号,可能就是这种情况,看起来您正在这样做。如果您能够更改 Proguard 设置以移除行号剥离,则这种情况可能会有所改善。
关于android - Firebase 崩溃报告包含带有 <OR> 的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43472383/