アンドロイドでの e3roid シーンの作成中に発火したプロセス中に、完全にトラップしたい例外に遭遇し続けます。おそらく、ユーザーエクスペリエンスを奪う即時の対話ではなく、余暇に横断できるバック例外トラッカーを作成する必要があります.
W/dalvikvm( 9540): threadid=1: thread exiting with uncaught exception (group=0x2
aac87c8)
E/AndroidRuntime( 9540): FATAL EXCEPTION: main
E/AndroidRuntime( 9540): java.util.ConcurrentModificationException
E/AndroidRuntime( 9540): at java.util.ArrayList$ArrayListIterator.next(Ar
rayList.java:573)
アプリ全体が例外ダイアログで停止します.. ConcurrentModificationException をグローバルスコープからトラップして、未知の状況が原因でそのようなイベントが発生した場合にアプリ全体が破棄されないようにしたいと考えています..
** 編集 **
onSceneTouchEvent 中にこのブロックが起動される間
try {
postUpdate(new AddShapeImpl(scene, onX, onY));
} finally {
}
私はブロックを発射するのが速すぎるようです。私は物事を遅くする必要があります。
* ファローアップ *
私は問題を解決したように見えました..私はこれらの1つをしました...
if ( ballspawning == false)
try {
Log.v(DEBUG_TAG, "onSceneTouchEvent 1-1");
addnewball(scene, onX, onY);
Log.v(DEBUG_TAG, "onSceneTouchEvent 1-2");
} finally {
}
ボールスポーン ブール値フラグを配置し、スポーン値を渡す 2 番目の手順を行った後、非常にゴールデンであることがわかります... フィールドを作成し、反復の最後に設定され、横方向の前にチェックされます。リストが発生します..フーフー!! 非常に甘いです!
グローバルトラッピングは本当に必要ありません..古き良きデバッグだけです。それでも、すべてのエラーのグローバル ハンドラを実装したいと考えています。TODO
私は再び同時エラーを発生させました..
スクリーンショット
- フォローアップ 2 * もう 1 つ
ConcurrentModificationException をキャッチしようとしました
void uncaughtException(Thread t,
Throwable e){
Log.v(DEBUG_TAG, "uncaughtException **********");
Log.v(DEBUG_TAG,"thread " + t + " Throwable" + e.toString());
}
最後のスクリーンショットでわかるように、上記のメソッドは呼び出されません。
ConcurrentModificationException は、アプリをクラッシュさせて例外ダイアログを表示します。
** ファローアップ **
私が追加しました
public class LauncherActivity extends E3Activity implements UncaughtExceptionHandler ,FPSListener,SceneUpdateListener
実行時に追加の実装されていないメソッド
@Override
public void uncaughtException(Thread t,Throwable e) {
Log.v(DEBUG_TAG, "uncaughtException **************");
Log.v(DEBUG_TAG,"thread " + t + " Throwable" + e.toString());
}
それでも例外トラップはありません...
私も追加しました
newThread.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){
@Override
public void uncaughtException(Thread t, Throwable e) {
Log.v(DEBUG_TAG,"*************** ERROR! An exception occurred in " + t.getName() + ". Cause: " + e.getMessage());
}
});
newThread.start();
いいえ、まだトラップはありません...
ああ
フーフー!!
例外をキャッチしました!! スクリーン ショットをチェックしてください... !!!!! が表示されます。
http://img17.imageshack.us/img17/135/concurrentmodification.png
Thx のおかげで、Java 例外処理の底にたどり着くのに苦労しました!!
私は並行問題を
削除...
パブリック クラス LauncherActivity は E3Activity を拡張し、 UncaughtExceptionHandler 、FPSListener、SceneUpdateListener を実装します
私がオリジナルにしなければならなかったこと... UncaughtExceptionHandler 実装なし
ジョニー・リーによって非常に詳細に説明されたクラスを追加しました。blog.dimond.de/?p=63
本当に甘いもの。