plugin logs log error disable debug android stack-trace google-fabric crashlytics-android dexguard

android - error - fabric crashlytics logs



Los stacktraces de Crashlytics muestran el nombre del archivo como Origen Desconocido mientras Dexguard está habilitado (3)

Dexguard cifró el código y ofuscó los archivos y los informes de fallos.

De acuerdo con la pregunta, todo está definido correctamente, lo que permite informes de fallas, nada para cambiar. En My Project Scenario también lo mismo, usando Dexguard With Fabric.

Al integrar Dexguard en Project, Dexguard encripta el código y confunde los archivos y los informes de fallos de otras bibliotecas.

Sin embargo, si también está utilizando Google Firebase Crashlytics, no puede ver el registro en la Consola Firebase. Obtendrá el mismo informe que la tela proporcionada.

Estos Crashlytics proporcionarán los informes de errores en la Consola de Google. comprueba los registros de bloqueo en la sección ANR & Crashes en Android Vitals.

Esa sección muestra todos los ANR y bloqueos recopilados de dispositivos Android cuyos usuarios han optado por compartir automáticamente los datos de uso y diagnóstico. Las anomalías solo se pueden detectar para trazados de pila no ofuscados.

Google explicó sobre esta sección https://support.google.com/googleplay/android-developer/answer/6083203

Tengo un problema con mis informes de fallos de Fabric Crashlytics cuando habilito Dexguard en mi proyecto.

He habilitado Dexguard en mi proyecto y funciona bastante bien. Luego seguí las instrucciones en esta página y agregué las configuraciones mencionadas para habilitar la eliminación de la ofuscación de mis apilamientos y mostrar los informes de fallos correspondientes. Así es como aplico los complementos de fabric y dexguard en el build.gradle de mi módulo principal:

apply plugin: ''com.android.application'' apply plugin: ''dexguard'' apply plugin: ''io.fabric''

Y aquí están las configuraciones en mi archivo proguard-project.txt :

# Fabric ############################################################################# -keepattributes *Annotation*,SourceFile,LineNumberTable -keep public class * extends java.lang.Exception -keepresourcexmlelements manifest/application/meta-data@name=io.fabric.ApiKey -keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.** #############################################################################

Y así es como uso proguard-project.txt en mi versión de lanzamiento:

buildTypes{ debug{ proguardFile getDefaultDexGuardFile(''dexguard-debug-shrink.pro'') proguardFile ''proguard-project.txt'' } release{ proguardFile getDefaultDexGuardFile(''dexguard-release.pro'') proguardFile ''proguard-project.txt'' proguardFile ''dexguard-project.txt'' if(new File("$projectDir/../local.properties").exists()){ signingConfig signingConfigs.release } } }

Pero cuando se produce un bloqueo en la versión de compilación, falta el nombre del archivo en el que se produjo el bloqueo, pero todo lo demás funciona correctamente y el seguimiento de la pila es casi comprensible. Aquí hay un ejemplo de informe de bloqueo:

Como puede ver en el informe de bloqueo, solo falta el nombre del archivo en el seguimiento de pila. Las otras descripciones como números de línea y nombres de métodos están completamente bien.

Aunque ir.X.ui.XMainActivity.throwSomething nombres completos de los métodos como ir.X.ui.XMainActivity.throwSomething y los números de línea frente a la Unknown Source , puedo concluir el nombre del archivo en el que ocurrió el error, me gustaría que mis stacktraces muestren el archivo Nombres y temas completamente descriptivos. He probado muchas opciones y muchas pruebas y errores, pero el problema sigue existiendo.

¿Hay algo que me falta? ¿Como puedó resolver esté problema?

Estoy usando la versión 8.1.0.7 de Dexguard, la versión 1.21.7 del complemento Fabric y la versión 2.9.0 de la biblioteca Crashlytics.

1.25.1 complemento de Fabric a la versión 1.25.1 y la biblioteca de Crashlytics a la versión 2.9.1 pero el problema sigue existiendo.

1.25.2 complemento de Fabric a la versión 1.25.2 , construí la versión de las herramientas a 27.0.3 , y la versión del complemento de gradle a 3.1.0 pero el problema sigue existiendo.


Puede seguir los siguientes pasos para los informes de fallos desofuscados. Como se cita en la documentación de firebase crashlytics

1. Para conservar la información que necesita Crashlytics para obtener informes legibles de fallos, agregue las siguientes líneas a su archivo de configuración:

-keepattributes *Annotation* -keepattributes SourceFile,LineNumberTable -keep public class * extends java.lang.Exception

2. Para permitir que Crashlytics cargue automáticamente el archivo de mapeo ProGuard o DexGuard, elimine esta línea del archivo de configuración:

-printmapping mapping.txt


Siga los pasos a continuación para obtener los rastros de pila correctamente en Crashlytics

  1. Inicia sesión en tu consola de juegos.
  2. Seleccione una aplicación.
  3. En el menú de la izquierda, haga clic en los signos vitales de Android> Archivos de desofuscación.
  4. Junto a una versión de su aplicación, haga clic en Cargar.
  5. Cargue el archivo de mapeo ProGuard para la versión de su aplicación.

Consulte este enlace: https://support.google.com/googleplay/android-developer/answer/6295281?hl=en