C# 类型初始值设定项异常OpenTK和monogame
我刚刚安装了MonoGame和OpenTK 1.0,在Visual Studio 2012中,我创建了一个类型为“Windows OpenGL Game”的新项目……但当我运行该项目时,我发现以下错误:C# 类型初始值设定项异常OpenTK和monogame,c#,visual-studio-2012,xna,opentk,monogame,C#,Visual Studio 2012,Xna,Opentk,Monogame,我刚刚安装了MonoGame和OpenTK 1.0,在Visual Studio 2012中,我创建了一个类型为“Windows OpenGL Game”的新项目……但当我运行该项目时,我发现以下错误: The type initializer for 'OpenTK.Graphics.GraphicsMode' threw an exception. 错误就在这一行(constructor,在base()上) 我的笔记本电脑有intel oboard graphics 3000,我认为它支持
The type initializer for 'OpenTK.Graphics.GraphicsMode' threw an exception.
错误就在这一行(constructor,在base()上)
我的笔记本电脑有intel oboard graphics 3000,我认为它支持OpenGL…这是我唯一能指出的。有什么想法吗?我们可以查看并找到异常未处理的地方。“类型初始值设定项”基本上是指静态构造函数:
static GraphicsMode()
{
lock (SyncRoot)
{
implementation = Platform.Factory.Default.CreateGraphicsMode();
}
}
不幸的是,挖掘CreateGraphicsMode
并没有发现任何异常的明显来源
您现在应该做的是尝试获取该异常的堆栈跟踪,并找出它在CreateGraphicsMode
中的起源。当异常未经处理时,调试器应提供此信息
通过少量挖掘,在没有看到堆栈痕迹的情况下(因此我几乎猜得出),我发现: 当然,这是毫无帮助的。虽然,根据其位置,它似乎表明它无法找到合适的图形模式 在这个阶段,我认为最好是从源代码构建MonoGame和OpenTK,这样您就可以使用调试器查看它们到底在做什么。我们可以查看并找到异常未处理的地方。“类型初始值设定项”基本上是指静态构造函数:
static GraphicsMode()
{
lock (SyncRoot)
{
implementation = Platform.Factory.Default.CreateGraphicsMode();
}
}
不幸的是,挖掘CreateGraphicsMode
并没有发现任何异常的明显来源
您现在应该做的是尝试获取该异常的堆栈跟踪,并找出它在CreateGraphicsMode
中的起源。当异常未经处理时,调试器应提供此信息
通过少量挖掘,在没有看到堆栈痕迹的情况下(因此我几乎猜得出),我发现: 当然,这是毫无帮助的。虽然,根据其位置,它似乎表明它无法找到合适的图形模式
在这个阶段,我认为最好是从源代码构建MonoGame和OpenTK,这样您就可以使用调试器查看它们到底在做什么。这个问题也发生在我的身上,我不相信这是MonoGame的源代码问题 A)您需要确保安装了openTK
B)正如craftworkgames所说,您的机器(我假设是笔记本电脑)不支持OpenGL。我的Sufrace Pro上出现了这个问题,必须将我的英特尔驱动程序更新到最新版本(我使用了guru3d.com和www.guru3d.com/files\u categories/videocards\u Intel\u graphics\u drivers.html此时安装了15.31驱动程序),然后它开始工作。这个问题也发生在我的电脑上,我不相信这是MonoGame的源代码问题 A)您需要确保安装了openTK
B)正如craftworkgames所说,您的机器(我假设是笔记本电脑)不支持OpenGL。我的Sufrace Pro上出现了这个问题,必须将我的英特尔驱动程序更新到最新版本(我使用了guru3d.com和www.guru3d.com/files\u categories/videocards\u Intel\u graphics\u drivers.html此时安装了15.31驱动程序),然后它开始工作。这意味着“OpenTK.graphics.GraphicsMode”类的构造函数中有错误,你有权访问这个类的构造函数吗?这个答案可能会对你有所帮助。您的笔记本电脑可能不支持所需的OpenGL版本。这意味着“OpenTK.Graphics.GraphicsMode”类的构造函数中有错误,您有权访问该类的构造函数吗?这个答案可能会对您有所帮助。您的笔记本电脑可能不支持所需的OpenGL版本。好吧,我只是认为这是我的笔记本电脑芯片…在我的个人电脑上,一切都很好。如果硬件加速不可用,OpenTK现在将正确地退回到软件加速环境。这是缓慢的,但它避免了崩溃。嗯,我只是认为这是我的笔记本电脑garphics芯片…在我的pc上,一切都很好,为子孙后代,OpenTK现在将正确地回退到软件加速环境下,如果硬件加速不可用。这是缓慢的,但它避免了崩溃。
throw new GraphicsModeException(
"No GraphicsMode available. This should never happen, please report a bug at http://www.opentk.com");