良好的一天,每個人都「更新」,的XNA Game堆棧溢出錯誤之後調用
我已經建立一個跨平臺的框架/抽象層對定位到Android,iOS和Windows Phone利用單7和XNA框架適當的平臺。我沒有使用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。我一直無法確定此時可能發生哪些進程,以導致堆棧溢出異常。
如果有人可能是在確定可以在這一點上存在的過程中提供援助,這無疑會在發現問題的來源十分有幫助。如果你會更舒服檢查代碼,我當然可以提供它,我毫不猶豫地這樣做,因爲我相信我能確定更多信息的問題,並瞭解這一問題所需的代碼庫可能被證明相當大。
感謝您的時間和幫助,請讓我知道是否可以提供更多有用的信息。
您可以檢查異常的堆棧跟蹤(或者將其粘貼在你的問題)? – 2012-08-08 01:30:45
雖然非常可恥,但我忘記了我可以禁用「我的代碼」功能並檢查問題的根源。奇怪的是,它似乎在調用OnActivated ad-infinitum。 – 2012-08-08 01:34:09