スポンサーサイト

--.--.--.--.--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

強制終了に関して

2014.06.15.Sun.22:03
アプリを試験プレイしていると、
『たまに』よくわからないエラーが発生することありませんか?

えぇ、私はいつものことです(汗

よくわからないってのは正しくないですね。
『私の知識では』わからないエラーが・・・ですね。

空飛べ(ryをテストプレイしていて、たまに強制終了が発生するんですよ。
で、ログを見てもいまいちわからないってので、ずいぶん前から放置していたものがあります。
定番ですが
『the連打試験!』
webシステムなんかだとsubmit時の連打試験は定番なんですが、
空飛べ(ryでもやってみたのですが、、、
やっぱりおかしくなるよ(泣

動き方異常でどうしたものか、プレイを続けるとエラー発生

まいった。
ログでは別スレッド上のエラーに見えるんだけど、意味わからん。。。

とりあえず、ダブルタップ対策を入れ込んだんだけど、
まだ発生することがある。
この週末にちゃんと調べてみたのですが、
どうやら原因ってのは、タップしたタスクが処理されるまでのタイムラグで矛盾が発生するため?
調べたけど、よくわかってないですw

よくわかってないけど、ちゃんと落ちずにフリーズされる症状がでるのはあまりにも見栄えが悪い。

ってことで、拾えていないエラーをすべて拾って、強制終了するように地味に修正
(ユーザビリティがないのは今は勘弁してください(TT

で、ぐぐってみると
UncaughtExceptionHandler
ってのを使えばよいらしい
http://www.adamrocker.com/blog/288/bug-report-system-for-android.html


私のゲームのベース部分は定番ですが
『AndEngineでつくるAndroid2Dゲーム』っての使ってるんで
mainActivityのonCreateScene()において
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler(this));
を生成してみました。
詳しい説明は上のサイトなど見てください。

ログとってみると、ちゃんと拾えてる♪
で、定番の終了処理でfinishさせてみたんですが、
強制終了後に再度アプリを起動してもフリーズしたままなんですよ

ここでどうしたものか悩んだんですが、
結果として
System.exit(0);
で終わらせることに・・・

これはやっぱりまずいのかな・・・
ライフサイクルを考えるとfinish()にすべきなんですけど、
ライフサイクルをandroidに任せると、いつDestroyされるかわからないし・・・

当分はこれで様子を見てみようと思います
スポンサーサイト
コメント
No title
確かに今俺が作っているゲームも「スタート→ゲーム中断→スタート→ゲーム中断…」を繰り返すといずれ落ちます。

ゲーム開始直後なので見ないことにして放置していますが…。
No title
岡本堂社長様

見なかったことにすることも大切ですよね(汗
なんか修正を加えるごとにロジックが汚くなってしまって、不具合誘発しつつあるのがとても恐怖ですw

管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。