2011-01-28 8 views
0

を使用してWP7ためのXNAのグローバル例外ハンドラを実装する:私は次のポストに似た症状を持っているWP7ゲームを持っているXNA

WP7 App exits when deployed

デバイス上のデバッガを介して実行時にそれが正常に動作しますが、展開されても実行されません。また、デバッグ中にデータ接続を外すと、もう30秒間実行されて終了します。

だから、私は何らかの理由でスローされなければならないと思われる神秘的な例外を何とか捕まえようとしています。

質問1 - どこにエラーをトラップできるようにtry catchブロックを置くことができますか?現在私は、フレームワークによって自動的に実行されるGameから派生した単一のクラスを持っています。

質問2 - 例外のエラーメッセージを取得する最も簡単な方法は何ですか?私はXNAを使用しているので、ダイアログボックスに問題がないと仮定します。

ありがとうございます! ブタ

答えて

1

Q 1.
WP7 XNAアプリケーションにグローバル例外ハンドラを追加する方法はありません。
適切なエラー処理を追加する場所は、コードに依存します。あなたはコードを表示していないか、アプリ/ゲームが何をしているかを説明しているので、それは言うのが難しいです。あなたがデータ接続を使用しているなら、あなたはネットワーク/ウェブ呼び出しを行うために使用しているコードを見るでしょう。私はあなたが接続のドロップを処理していないと思うし、あなたは現在、要求に30秒のタイムアウトがあります。したがって、ネットワークから切断した30秒後にアプリケーションがクラッシュします。

Q 2.
XNAからMessageBoxを表示することができます。 http://msdn.microsoft.com/en-us/library/ff827868.aspx

+0

私はDraw()とUpdate()Gameオーバーライドにtry/catchハンドラを追加し、それらからエラーメッセージボックスを呼び出しました(リンクありがとう!)。私はマウスの左ボタンイベントでメッセージボックスをテストし、それが表示されます。しかし、メッセージボックスを表示せずにアプリが予期せず終了しますか?私はネットワークにアクセスしません。物理エンジンでシーンを描く単なるゲームです。私はデバッガに接続している限り、すべて正常に動作します。あたかもタイムアウトして自動的にアプリを終了したようです。これを無効にする電話設定はありませんか? – swinefeaster

+0

メモリの問題であることが判明しました。例外はスローされませんでしたが、画像サイズを小さくすると、アプリは正しく動作しました。 – swinefeaster

1

Xbox LIVEインディーゲームでXbox 360で使用するのと同様のテクニックを使用できるはずです。ニック重々しくはここ

http://blog.nickgravelyn.com/2009/07/a-more-robust-exception-system/

を元のサンプルを共有して、私はここでもう少しを行うために彼を強化しました。

http://www.xnadevelopment.com/tutorials/tellmewhatswrong/tellmewhatswrong.shtml

同じ技術が携帯電話で動作するはずです。

+0

WP7には、残念ながらフックするメイン()がありません。あなたができることは、Draw()、Update()、および失敗の危険性がある他のトップレベルゲームメソッドをラップすることです。 –

+0

2番目のリンクは引き続き動作し、ソースコードとのリンクがあります。最初は壊れています。 –

関連する問題