2011-01-25 61 views
2

Androidでは、C++で一連のテストを実行するNDKを使用してアプリケーションを実行しています。テストのいずれかが失敗した場合、クラッシュを意味する可能性が最も高いので、アプリケーションを再起動して次のテストから開始することをおすすめします。クラッシュ時に自動的にアプリケーションを再起動しますか?

私は例外を使用することができますが、NDKはそれらをサポートしません。

これは可能ですか?

+0

私はこれをテストしていませんが、おそらく@FlakyTestはそれをカバーしています:http://developer.android.com/reference/android/test/FlakyTest.htmlもう一度、それはおそらく失敗したテストでのみ動作しますが、あなたのアプリをクラッシュさせるエラーではありません。しかし、おそらく試してみる価値があります。 – Matthias

答えて

3
  1. なぜアプリケーションがクラッシュする必要がありますか?なぜ例外がスローされるのをキャッチしませんか?コンパイラでさえtry..catchブロックを追加するよう強制しませんが、まだRuntimeExceptionsがスローされることがあります。
  2. Thread.setDefaultUncaughtExceptionHandlerも使用できます。これはスレッドごとに呼び出さなければならないことに注意してください。
  3. 何らかの理由で上記の解決策が適切でない場合は、watchdog timerとして機能するバックグラウンドサービスを作成することができます。

EDIT:this link:C++例外をサポートするNDKのカスタムバージョンを確認してください。私はthis threadにそれを見つけました。

+0

NDKを使ってテストがC++であることを言い忘れたことに気付きました。 NDKランタイムには例外がないので、私の問題です。 – djcouchycouch

+0

3については、バックグラウンドサービスは単独でアプリケーションを起動できますか? – djcouchycouch

+0

質問はクラッシュを回避することではなく、アプリを再起動することであったので、答えは主観的でなければなりません。私は、質問の著者がクラッシュを避けるために最善を尽くしていると確信していますね? – barmaley