Because you initialized spritebatch...
spriteBatch = new SpriteBatch(GraphicsDevice);
...It shouldn't be null
unless one of your other classes is changing it.
Things you can try:
-Put a breakpoint on it in load content, I don't know why it wouldn't be called, but just check in case, make sure that LoadContent()
is being called.
-Rebuild you project and make sure your changes are being saved.
...As I was writing this answer and testing the code on my machine I finally found the error. I'll leave the advice above in case anyone else has one of those issues.
You are not calling base.Initialize
in your Initialize()
method. This method calls the internal XNA stuff, which results in your LoadContent()
being called.
It is also a good idea to call base.LoadContent
in the LoadContent()
method, you should always call the base method on any overridden method.