Crashlytics Android SDK - custom UncaughtExceptionHandler

前端 未结 6 1993
星月不相逢
星月不相逢 2020-11-29 05:34

Is it possible to incorporate custom UncaughtExceptionHandler along with crashlytics in one application? If yes - how?

6条回答
  •  长情又很酷
    2020-11-29 06:39

    Since recent versions of Crashlytics perform initialization asynchronously, it's better to use Fabric's initialization callback:

    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);
        }
    };
    
    CrashlyticsCore core = new CrashlyticsCore.Builder()
                .disabled(BuildConfig.DEBUG)
                .build();
    Fabric.with(new Fabric.Builder(this).kits(new Crashlytics.Builder()
                .core(core)
                .build())
                .initializationCallback(new InitializationCallback() {
                    @Override
                    public void success(Fabric fabric) {
                        mDefaultUEH = Thread.getDefaultUncaughtExceptionHandler();
                        Thread.setDefaultUncaughtExceptionHandler(mCaughtExceptionHandler);
                    }
    
                    @Override
                    public void failure(Exception e) {
    
                    }
                })
                .build());
    

提交回复
热议问题