我正在使用Mono For Android和MonoGame将简单的类似俄罗斯方块的XNA应用移植到Android上;我已按照this link中建议的步骤进行操作,到目前为止,所有内容编译良好,并且没有相关的警告。但是,在加载内容时,null参数异常会在程序中的以下位置中断程序:
protected override void LoadContent() {
// ...
_font = Content.Load<Microsoft.Xna.Framework.Graphics.SpriteFont>("SpriteFont1");
// ...
}
内容根目录在游戏构造函数类中设置:
public Game2 (){
Content.RootDirectory = "Content";
Content.RootDirectory = "Assets/Content"; // TEST.
//...}
我尝试了几种组合,但都无济于事。
我还尝试在Build Action属性中将xnb文件设置为Content以及Android Assets;具有链接,复制始终,仅在较新...等时复制。
无论哪种方式,我的问题是我不明白为什么和 HOW 我应该这样做。我对平台和XNA都很陌生,所以这可能是一个新手问题,但事实是经过几个小时敲打我的头和拳头对着显示器/键盘我觉得卡住了,需要你的帮助。 / p>
答案 0 :(得分:0)
MonoGame(2.5.1)在ContentManager.Load中为SpriteFont类型抛出NotImplementedException。有同样没有解决的问题。我试图不使用DrawString。
为了在Win32应用程序中加载纹理,我使用:
Content.RootDirectory = @"../../Content";
var sampleTexture = Content.Load<Texture2D>("Sample.png");
您甚至不能将其添加到解决方案中。
对于Andoind(MonoDroid)应用程序,您必须添加&#34; Content&#34;文件夹到您的解决方案并设置&#34; Andtoid Asset&#34; in&#34; Sample.png&#34;属性。
Content.RootDirectory = "Content";
var sampleTexture = Content.Load<Texture2D>("Sample.png");
另见:
答案 1 :(得分:0)