2017-04-18 154 views
5

我在生產中有一個應用程序,並且我正在使用Firebase進行錯誤和崩潰日誌記錄。最近,我在堆棧跟蹤中看到一些例外的行,從<OR>開始。下面是直接從火力地堡報告了一個異常採取(除包名)的例子:Firebase崩潰報告包含堆棧跟蹤<OR>

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定期堆棧跟蹤不叫checkPermissioncheckPermission不調用PermissionManager.getInstance。 爲了安全起見,我認爲這是Android對堆棧跟蹤進行混淆的方式之一,但是我找不到任何相關文檔。有誰知道如何解釋這個堆棧跟蹤?

+0

您使用的是proguard嗎? –

+0

@IshanKhanna是的,我已經上傳了'mapping.txt'文件 – halileohalilei

+0

上傳在哪裏?請將您的stacktrace –

回答

1

您在此處看到的是Crash Reporting無法確定此時的實際對象。目前,已知Proguard反混淆的情況,其中可能含糊不清哪個對象是目標。如果你正在從你的課程中剝離行號,這可能就是這種情況,這看起來像你正在做的。如果您能夠更改Proguard設置以刪除行號的剝離,則情況可能會改善。

0

添加到您的proguard-rules.pro

// obfuscate file name and keep line numbers 
-renamesourcefileattribute SourceFile 
-keepattributes SourceFile,LineNumberTable 

它應該消除歧義,你不應該看到在您的堆棧跟蹤<OR>了。

相關問題