0

みなさん、良い一日を、

適切なプラットフォームで Mono および XNA フレームワークを利用して、Android、iOS、および Windows Phone 7 を対象とするクロスプラットフォーム フレームワーク/抽象化レイヤーを構築してきました。ExEn、MonoGame、または同様のフレームワークは使用していませんが、それらのアプローチを研究して多くのことを学びました。

フレームワークの XNA 部分は XNA Game クラスを拡張します。私は、ここで問題が発生することを確信しています。しかし、私はそれを追跡するのに苦労しています.XNA Gameクラスの知識が豊富な人が大いに役立つかもしれません. クラスの継承階層全体のコードは掲載しません。スペースが必要になるためです。代わりに、XNA Game クラスの問題の可能性のある原因に関する情報を要求します。これにより、エラーが見つかる可能性があります。 .

テスト ゲームを実行すると、スタック オーバーフロー例外が発生します。完全な例外は次のとおりです。

An unhandled exception of type 'System.StackOverflowException' occurred in Microsoft.Xna.Framework.Game.dll

犯人を追跡するために、いくつかの簡単なデバッグ ステートメントをコンソールに出力しています。私が得ている出力は次のとおりです。

Started init.
Started linear load.
Loading a texture...
Finished loading a texture...
Finished linear load.
Finished init.
Begin run called.
Begin run ended successfully.
Started update.
Ended update.

Process is terminated due to StackOverflowException.

ご覧のとおり、更新は正常に完了していますが、BeginDraw にも EndRun にも進んでいません。スタック オーバーフローの例外を引き起こすために、その時点でどのプロセスが実行されているかを特定できませんでした。

この時点で発生している可能性のあるプロセスを特定するのに誰かの助けがあれば、問題の原因を突き止めるのに間違いなく役立ちます。コードを調べるのがより快適である場合は、私はそれを提供できますが、より多くの情報で問題を特定できると信じており、問題を理解するために必要なコードベースが非常に大きくなる可能性があるため、そうすることをためらっています.

お時間を割いてご協力いただきありがとうございます。役立つ情報をさらに提供できるかどうかお知らせください。

4

1 に答える 1

2

解決

どうやら、イベント処理メソッドをイベント自体に結び付けて、自己トグルの無限ループを作成するという私のかなりばかげた手順の結果として、OnActivated が繰り返し呼び出されていたことがわかりました。

ありがとう

Illian Pinzon に、Android 開発によって引き起こされた昏睡状態から脳を解放してくれた、明白なアドバイスであるとはいえ、この有益なアドバイスをくれたことに感謝します。

于 2012-08-08T01:38:08.553 に答える