ACRA 自体が奇妙な問題でクラッシュしています。
IllegalStateException: Cannot access ErrorReporter before ACRA#init
完全に動作する ACRA 4.3.0 のアプリがあります。アプリ全体をライブラリに変更したので、マイナー バリアントを作成できます。マニフェストとこの新しいライブラリへのリンク以外は完全に空白の新しいプロジェクトを作成しました。これを試みる他の人については、AcraApplication.java で「resToastText = R.string.crash_toast_text」行を削除し、Acra.init(this); の下に新しい行を追加する必要があります。
ACRA.getConfig().setResToastText(R.string.crash_toast_text);
プロジェクトは正常にビルドされ、デバッグで ACRA.init(this); を確認しました。私のメインプログラムコードの前で、エラーが発生する前に実行されます。メイン プログラムで、いくつかのカスタム データを設定した時点で、次のようになります。
ACRA.getErrorReporter().putCustomData("Orientation", "L");
これによりクラッシュが発生し (より正確には、ACRA 自体がエラーを引き起こします)、ACRA レポートは生成されません。
次に何を試すか、またはどこを見るべきかのヒントはありますか? ACRA はライブラリと互換性がない可能性があります。この場合、別の方法で処理することはできますが、ライブラリの目的を無効にします。
解決策: 以下の行を追加する代わりにAcra.init(this);
、init 行の前に次の 3 行を追加します。
ACRAConfiguration config = ACRA.getNewDefaultConfig(this);
config.setResToastText(R.string.crash_toast_text);
ACRA.setConfig(config);
ACRA.init(this);
これは v4.3.0 以降でのみ機能することに注意してください。