Monogame对象引用未设置为实例错误

本文关键字:实例 错误 设置 对象引用 Monogame | 更新日期: 2023-09-27 18:27:30

男生在这个问题上需要帮助一段时间。我用visual C#express 2010和一夫一妻制2.5编写代码,在windows中制作游戏,使用Texture2D为游戏加载一些图像并编译。但当我试图编译这个项目时,它会给我这个错误。对象引用未设置为对象的实例。

    private static Game1 game;
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        game = new Game1();
        game.Run();//This line gives the warning
    }
}

我尝试这个代码

Game1 game = new Game1();
game.Run();

但它没有起作用,仍然会出现这个错误。

对象引用未设置为对象的实例

我是错过了什么,还是应该安装一些东西来解决这个问题?

Monogame对象引用未设置为实例错误

根据您提供的信息,听起来异常是从MonoGame的Run方法中抛出的。

解决这个问题的第一步是获得更多关于原因的信息。最好的方法是在一个解决方案中从源和您的项目一起构建MonoGame。这样,当抛出异常时,调试器将在MonoGame中错误发生的确切位置中断,您可以使用调试器来确定问题所在。

下一个最好的方法是查看异常的详细信息,以获取堆栈跟踪。这至少会告诉您是什么方法导致了异常。从那里你可以在源代码中查找它,看看它是否提供了任何其他信息。

(对于这个特殊的异常,"对象引用未设置为对象的实例",堆栈跟踪的帮助较小,因为它是由.NET框架抛出的(可能是由于MonoGame中的一个错误),而不是由Mono Game本身显式抛出的(例如)API使用中的错误。)


如果我必须猜测原因(我确实这样做了),我猜您没有在Game1类的构造函数中正确设置GraphicsDeviceManager(请注意您的构造函数在Run之前是如何运行的)。而且,MonoGame并没有检测到这种情况并抛出一个信息异常,而是继续努力,直到崩溃。

但这是假设其他一切都正常工作。这也可能是一个问题,例如,MonoGame由于任何原因无法初始化图形设备。或者其他很多事情,真的。。。

(另一种选择可能是尝试构建与XNA的比赛,看看结果如何。)

在我的Monogame版本中,默认项目总是这样开始的:

 static void Main()
        {
            using (var myGame = new Game1())
                myGame.Run();
        }

这似乎奏效了。