我刚刚在OSX上安装了xamarin和monogame我试图运行一个非常适合在Windows上运行的基本演示项目。但是我收到以下错误:
System.NullReferenceException: Object reference not set to an instance of an object
at Microsoft.Xna.Framework.OpenTKGameWindow.Initialize () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.OpenTKGameWindow..ctor () [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.OpenTKGamePlatform..ctor (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.GamePlatform.Create (Microsoft.Xna.Framework.Game game) [0x00000] in <filename unknown>:0
at Microsoft.Xna.Framework.Game..ctor () [0x00000] in <filename unknown>:0
at test.Game1..ctor () [0x00057] in /Users/remojansen/Desktop/test/test/Game1.cs:37
at test.Program.Main () [0x00001] in /Users/remojansen/Desktop/test/test/Program.cs:19
代码没有错,所以我必须丢失DLL或其他东西?你对可能遗失的东西有任何想法吗?
谢谢:)
[编辑]
反汇编在第二行显示错误:
00000155 callvirt IWindowInfo OpenTK.NativeWindow:get_WindowInfo ()
0000015a ldnull
0000015b callvirt Object System.Reflection.PropertyInfo:GetValue (Object, Object[])
00000160 unbox.any System.IntPtr
00000165 stfld
0000016a call GraphicsMode OpenTK.Graphics.GraphicsMode:get_Default ()
0000016f ldarg.0
00000170 ldfld
00000175 callvirt IWindowInfo OpenTK.NativeWindow:get_WindowInfo ()
0000017a newobj Void OpenTK.Graphics.GraphicsContext:.ctor (GraphicsMode, IWindowInfo)
我还手动编译了OpenTK,当我运行这些示例时,它们似乎工作正常:
我猜问题是monogame,我使用xamarin monogame项目模板安装了monogame。
答案 0 :(得分:1)
MonoGame Xamarin模板存在很多问题。其中之一是它总是会选择错误的框架。您需要手动浏览到/ Users // Library / Application Support / XamarinStudio-4.0 / LocalInstall / Addins / MonoDevelop.MonoGame.3.0.1 / assemblies / MacOS
中的框架dll但是,如果您使用的是3.0.1版本,则仍存在问题 - 存在MonoMac.dll API冲突。我强烈建议您下载最新的MonoGame源代码,并自己构建MonoGame.Framework.MacOS项目,并在那里引用框架程序集。您仍然可以使用您安装的Xamarin模板,只需更改程序集引用即可。您可能还需要将logo.png构建操作设置为“内容”以完全开始。
答案 1 :(得分:0)
对于任何可能在将来偶然发现这一点的人,我在Windows上遇到了同样的问题。 Xamarin似乎选错了MonoGame.Framework.dll,即使我自己构建了github版本并手动设置了引用。
我很幸运,右键单击了我的项目参考文件夹中的MonoGame.Framework参考,并取消选中了表示&#34; Local Copy&#34 ;;这解决了我的问题!!
祝你好运!