キャッチされていない例外は、古い例外ハンドラを格納し、キャッチされていない例外を渡すことによってシステムに戻すことができます。
まず以下のようにApplication
クラスを作成する:
public class Controller extends Application {
private static Thread.UncaughtExceptionHandler defaultHandler;
@Override
public void onCreate() {
super.onCreate();
if (defaultHandler == null) {
defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
}
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
FirebaseCrash.report(e); //or whatever
defaultHandler.uncaughtException(t, e); //this will show crash dialog.
}
});
}
}
を次にようにマニフェストにアプリケーションとしてこのクラスを使用する:
<application
android:name=".Controller"
... />