Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AndroidGameWindow.SetDisplayOrientation NullReferenceException

Tags:

I developed a game for Android using MonoGame & Xamarin. I incorporated BugSense into it and quickly started getting the following exception stack trace:

System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.Xna.Framework.AndroidGameWindow.SetDisplayOrientation (Microsoft.Xna.Framework.DisplayOrientation) <0x001c4> at Microsoft.Xna.Framework.AndroidGameWindow.SetOrientation (Microsoft.Xna.Framework.DisplayOrientation,bool) <0x00097> at Microsoft.Xna.Framework.OrientationListener.OnOrientationChanged (int) <0x001c7> at Android.Views.OrientationEventListener.n_OnOrientationChanged_I (intptr,intptr,int) <0x0003f> at (wrapper dynamic-method) object.ed9d7c7c-f3e6-4d7a-9249-1a139a251aed (intptr,intptr,int) <0x00043> 

This is how my activity is setup:

[Activity(Label = "My Cool Game"         , MainLauncher = true         , Icon = "@drawable/icon"         , Theme = "@style/Theme.Splash"         , AlwaysRetainTaskState = true         , LaunchMode = Android.Content.PM.LaunchMode.SingleTask         , ScreenOrientation = ScreenOrientation.Portrait         , ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden)] 

And in the game constructor I have the following:

public Game1() {     _graphics = new GraphicsDeviceManager(this);     _graphics.PreferredBackBufferFormat = SurfaceFormat.Color;     _graphics.IsFullScreen = true;     _graphics.SupportedOrientations = DisplayOrientation.Portrait | DisplayOrientation.PortraitDown;     _graphics.ApplyChanges(); } 

The project is set to compile against v2.3. I haven't had any issues relating to an orientation on my test devices so I am not sure what is causing this exception, hence I cant fix it.

like image 393
user123 Avatar asked Sep 03 '14 22:09

user123


1 Answers

I have come across this Null Reference exception before working on a different project. You will have to pardon my ignorance of your particular field in gaming but let me explain to you what this means perhaps it will help you solve this problem. What this exception means is that there is no object of a particular sort available in memory for the system to be able to work on it. An instance of this object must be created with the new keyword or in other ways for it to be recognised as a valid object in memory.

From reading the above error message it seems to want an object to initalise the display orientation. No where in your constructor or activity setup do I see anything creating any object for display orientation. Thus the object is not there in memory so it is null.

like image 96
Soliman Soliman Avatar answered Sep 19 '22 03:09

Soliman Soliman