2011-02-08 24 views
0

ユーザーがゲームをプレイしているときに着信があったときに、アプリの呼び出しが終了した後にアプリがクラッシュしたというバグレポートがありました。着信後にAndroidアプリがクラッシュする

問題は私がエラーを再現しようとしたことです - 私は今朝、それを実行して電話をかけています - それはいつも問題なく再開します。私はこの問題に関連するエラー報告も見ることができません。私はかなり徹底的で、さまざまな段階(すなわち、ハイスコア、スプラッシュスクリーン、ゲームプレイ中)にそれを呼び出すことができ、問題は決してありません。

私はこのバグをしばらく前に報告していたので、奇妙なことです、そして、ユーザは今は大丈夫だと言っていました。だから私は間欠的でなければならないと思う。

私の問題は、onCreate()メソッドのどこかにあると思います。私はこれがアプリケーションを再開するときのエントリーポイントだと思った。

誰もがこの「ブラインド」をクラッシュレポートなしでデバッグする方法を知っていますか?

+0

ねえ、解決策は何ですか?あなたが見つけた場合は自分の答えを投稿してください。 –

答えて

0

は、一般的にそのお勧めしませんが、たuncaughtExceptionHandlerは...あなたはおそらくONSTARTではなくのonCreateを探しているcheck the second answer

0

マニフェストであなたのconfigChangesはどのように見えますか?

onConfigurationChangedが正しく処理されていることを確認してください。

オリエンテーションの変更は、多くの同様の問題の原因です。

+0

私は向きの変更を許可しません。 – Kevin

0

私はこれを修正したと思います。問題は、以前のスレッドを停止することなく、surfaceCreatedメソッドで新しい描画スレッドを作成していることでした。メモリが足りなくなり、結果的に例外が発生します。 DDMSを使ってスレッドを見ると、複数の描画スレッドが構築されているのがわかりました。ゲームでは、アプリがバックグラウンドに送信されるたびにすべてが減速することがわかりました。

この答えは、ソリューションprogramming with thread strategy

でたくさん助けその背景にアプリを送信するときに、スレッドを殺す方法の支持者。最終的には、アプリがスリープしているときにスレッドを一時停止させることにしました。なぜなら、これはもっと論理的なアプローチだったからです。スレッド内の待機ループ以外の複雑なものはありません。私はちょうどを設定

 while (run) { 
      while (paused) { 
       try { 
        Thread.sleep(200); 
       } catch (InterruptedException e) { } 
      } 

はonStop()メソッドにtrueにを一時停止しました。

関連する問題