プロジェクトを新しいAndroid Native Development Kit(JNI)に移動します。SIGSEGVが発生した場合(おそらくSIGILL、SIGABRT、SIGFPEも)、代わりに、素敵なクラッシュレポートダイアログを表示したいのですが。 (または以前に)現在発生していること:プロセスの即時の異常な終了と、OSによるプロセスの再起動の試み。(編集: JVM / Dalvik VMはシグナルをキャッチし、スタックトレースやその他の有用な情報をログに記録します。その情報をメールで送信するオプションをユーザーに提供したいだけです。)
状況は次のとおりです。私が記述していない大量のCコードが、このアプリケーション(すべてのゲームロジック)でほとんどの作業を行います。他の多くのプラットフォームで十分にテストされていますが、Androidで移植すると、ガベージをフィードし、ネイティブコードでクラッシュを引き起こすので、現在Androidログに表示されるクラッシュダンプ(ネイティブとJavaの両方)が必要です(Android以外の状況ではstderrになると思います)。私は自由にCとJavaの両方のコードを変更できますが、コールバック(JNIに出入りするコールバックの両方)の数は約40で、明らかに小さな差分にはボーナスポイントがあります。
J2SEのシグナルチェーンライブラリであるlibjsig.soを聞いたことがあります。Androidにそのようなシグナルハンドラーを安全にインストールできれば、私の疑問の一部を解決できますが、Android / Dalvikにはそのようなライブラリはありません。