Informe de fallo de Firebase contiene seguimiento de pila con <OR>

Tengo una aplicación en producción y estoy utilizando Firebase para el error y el registro de fallos. Últimamente, he estado viendo algunas líneas en el rastro de la pila de las excepciones, empezando por <OR> . A continuación se muestra un ejemplo tomado directamente (excepto el nombre del paquete) de una excepción reportada por Firebase:

 Exception java.lang.NullPointerException: Attempt to invoke interface method 'void com.mycompany.myapp.managers.b$af()' 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) 

Sé que esto no es un rastro de pila regular ya que onRequestPermissionResults no llama a checkPermission y checkPermission no llama a PermissionManager.getInstance . Supongo que esta es una de las formas en que Android obfusca el seguimiento de la pila por razones de seguridad, pero no pude encontrar ninguna documentación sobre esto. ¿Alguien sabe cómo interpretar este seguimiento de pila?

Lo que ves aquí es una indicación de que Crash Reporting no pudo determinar el objeto real en ese momento. Actualmente, hay una situación conocida con la deobfuscación Proguard donde podría ser ambiguo qué objeto es el objetivo aquí. Este podría ser el caso si estás desnudando los números de línea de tus clases, que parece que estás haciendo. Esta situación puede mejorar si puede cambiar la configuración de Proguard para eliminar la eliminación de números de línea.

Añada esto a su proguard-rules.pro :

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

Debe eliminar la ambigüedad y ya no deberías ver <OR> en tu stacktrace.

  • Por qué no veo los registros en Firebase Crash Reporting
  • Firebase Crash produce ANR durante el lanzamiento
  • ¿Cómo subir un archivo de asignación a Firebase?
  • Firebase y Crashlytics - ¿Cuál usar?
  • Cómo se inicializa la notificación de fallos de Firebase
  • ¿Soporta / soportará Google NDK C ++ falla en Firebase Crash Reporting?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.