Xamarin Studio:System.InvalidOperationException

时间:2018-07-10 12:37:57

标签: c# xamarin xamarin.ios monogame

我在Xamarin Studio中创建了一个新的MonoGame iOS解决方案。之后,我将以下代码添加到Game1.cs:


<mat-card class="card-component" [routerLink]="modelUrl">...</mat-card>

但是在构建项目时收到错误消息。

bool IsiOS = false;    
if (Device.RuntimePlatform == Device.iOS)
   IsiOS = true;
  

System.InvalidOperationException您必须调用Xamarin.Forms.Init();。   在使用它之前。

我的代码有什么问题?我不知道该添加或更改什么。

代码(Game1.cs):

if (Device.RuntimePlatform == Device.iOS)

代码(Program.cs):

using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Xamarin.Forms;

namespace NewTest.iOS
{
public class Game1 : Game
{
    GraphicsDeviceManager graphics;
    SpriteBatch spriteBatch;
    bool IsiOS = false;

    public Game1()
    {
        graphics = new GraphicsDeviceManager(this);
        Content.RootDirectory = "Content";
        graphics.IsFullScreen = true;
    }

    protected override void Initialize()
    {  
        base.Initialize();
    }

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);
        if (Device.RuntimePlatform == Device.iOS)
            IsiOS = true;
    }

    protected override void Update(GameTime gameTime)
    {
        base.Update(gameTime);
    }

    protected override void Draw(GameTime gameTime)
    {
        graphics.GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.CornflowerBlue);

        base.Draw(gameTime);
    }
}
}

1 个答案:

答案 0 :(得分:0)

Device类是Xamarin Forms的一部分。如果您使用的是Xamarin Forms,则必须首先对其进行初始化。这正是错误消息告诉您的内容。