Crashlytics Android SDK – personalizado UncaughtExceptionHandler

¿Es posible incorporar UncaughtExceptionHandler personalizado junto con crashlytics en una aplicación? En caso afirmativo, ¿cómo?

Puede configurar su UncaughtExceptionHandler personalizado siempre que pase la excepción al predeterminado UncaughtExceptionHandler para ser manejado posteriormente a través de Crashlytics.

El código debajo se implementa dentro de la subclase de la aplicación:

private static Thread.UncaughtExceptionHandler mDefaultUEH; private static Thread.UncaughtExceptionHandler mCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { // Custom logic goes here // This will make Crashlytics do its job mDefaultUEH.uncaughtException(thread, ex); } }; @Override public void onCreate() { super.onCreate(); // Order is important! // First, start Crashlytics Crashlytics.start(this); // Second, set custom UncaughtExceptionHandler mDefaultUEH = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(mCaughtExceptionHandler); } 

La segunda opción es registrar Crashlytics después de configurar su UncaughtExceptionHandler personalizado – entonces todas las excepciones no detectadas serán reportadas por Crashlytics como fatals, y después de que pasó a su controlador personalizado.

Sí, es posible.

En su clase de aplicación:

 @Override public void onCreate() { super.onCreate(); Crashlytics.start(this); initUncaughtExceptionHandler(); } private void initUncaughtExceptionHandler() { final ScheduledThreadPoolExecutor c = new ScheduledThreadPoolExecutor(1); c.schedule(new Runnable() { @Override public void run() { final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread paramThread, Throwable paramThrowable) { // do my amazing stuff here System.err.println("Error!"); //then pass the job to the previous handler defaultHandler.uncaughtException(paramThread, paramThrowable); } }); } }, 5, TimeUnit.SECONDS); } 

La razón por la que estoy programando esto después de 5 segundos es porque Crashlytics necesita algún tiempo para configurar sus cosas. Estoy usando este código y funciona perfectamente. Por supuesto, si su aplicación se bloquea al iniciar, lo siento, pero no un controlador personalizado;)

Ninguna si esas soluciones funcionaban para mí. Lo hice de la siguiente manera:

 // Setup handler for uncaught exceptions. Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException (Thread thread, Throwable e) { //Send Report to Crashlytics. Crashlytics will send it as soon as it starts to work Crashlytics.logException(e); //Your custom codes to Restart the app or handle this crash HandleCrashes(thread, e); } }); 

Y aquí está mi método personalizado para reiniciar el APP:

 private void HandleCrashes(Thread t, Throwable e) { Intent i = new Intent(mContext, frmLogin.class); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra("JustLogin", true); startActivity(i); System.exit(1); } 
  • ¿Hay una manera de cargar el apk firmado a crashlytics?
  • No se puede subir apk a Crashlytics
  • Cómo deshabilitar Respuestas Crashlytics?
  • ¿Cuál es el impacto de tener varias herramientas de generación de informes de fallos en la aplicación para Android
  • Proguard con Crashlytics
  • ¿Necesito llamar a Crashlytics.start varias veces?
  • Error: Gradle: Error de ejecución de la tarea ': app: crashlyticsCleanupResourcesDebug'. > Error de Crashlytics Developer Tools
  • Com.crashlytics.android.CrashlyticsMissingDependencyException durante gradle 'testDebug' en el proyecto de estudio android
  • ¿Cómo importar sólo ABI de bibliotecas nativas seleccionadas de AAR?
  • Cómo deshabilitar Crashlytics / Fabric en Runtime cuando el usuario cambia las preferencias
  • No se pudieron determinar las dependencias de la tarea ': app: crashlyticsStoreDeobsDebug' si habilito el proguard
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.