Javaを使用して(これはJavaの質問です)、アプリケーションクラスのデフォルト例外ハンドラを作成しました。スレッド:Androidでクラッシュする方法 - すべての例外/クラッシュを1か所でキャプチャする方法
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
AppInitialization();
}
private void AppInitialization() {
defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
private UncaughtExceptionHandler defaultUEH;
// handler listener
private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {
ex.printStackTrace();
// TODO handle exception here
}
};
}
私の目標は何ですか? crashLyticsクラッシュレポートの追加情報を記録する必要があります。例外が発生すると、いつもフックuncaughtException(スレッドスレッド、Throwable ex)が呼び出されます。私はそれがクラッシュと例外(確かではない)のために動作すると仮定します。この上
3質問:
これはcrashLyticsがイムは、デフォルトの例外ハンドラをoverrdingので、どのように動作するかに影響します。
これによりアプリを続行できますか?これは必要ありません。私は例外をどこか他の場所に記録し、defaultexceptionHandlerが存在しないかのように続行します。さもなければ、QA回帰はバグを見て修正するのは難しいでしょう。 uncaughtException(thread、ex)の中からdefaultUEH.uncaughtException(thread、ex)を呼び出すと、ループし続けますか?
どのスレッドがsetDefaultUncaughtExceptionHandlerに関連付けられていますか?これは、すべてのスレッド(例えば、メインスレッドのみ)で動作しますか?
明確にするために、すべてのクラッシュ/クラッシュ/例外に関する追加情報を送信する方法が必要です。どうやって ?
更新:here誰かが解決策を見つけましたが、この方法を使用すると、クラッシュサイクリックスは致命的な問題も報告しますか?
:
Applicationクラスのサブクラスで今}
crashlytics AFTERがインストールされているが、これを行います情報は必要ですか? – maxoumime
クラッシュでビジネスロジックを送信したい。たとえば、アプリケーションでは、トークン、UUID、現在のタブなどのように、問題を再現しやすくすることができます。 – j2emanue
私は、あなたが 'Crashlytics.log'を使って考えていますか?あなたがアプリのユーザーの行動、彼が開いた活動、彼が選択したタブなど、クラッシュで送信されるログを準備することができるこの方法...ちょうど考え – maxoumime