[solved]NullPointer with basic LibGDX. Following examples.

I’m following this tutorial for loading models using LibGDX: http://blog.xoppa.com/loading-models-using-libgdx/

I’m getting a nullpointer on this line:

modelBatch.render( playerModelInstance, environment );

After some code reformatting, I saw that the

modelBatch.render( 

was the cause of the error.

Here’s my error

Exception in thread "LWJGL Application" java.lang.NullPointerException
	at com.badlogic.gdx.graphics.g3d.ModelBatch.render(ModelBatch.java:265)
	at com.chris.rpg.Client.render(Client.java:74)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

Here’s my code:

package com.chris.rpg;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.g3d.Environment;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.ModelBatch;
import com.badlogic.gdx.graphics.g3d.ModelInstance;
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight;


public class Client implements ApplicationListener  {
	
	private PerspectiveCamera playerCamera;
	
	private AssetManager assets;
	
	private Model playerModel;
	private ModelBatch modelBatch;
	private ModelInstance playerModelInstance;
	
	private Environment environment;
	
	private int placeholder_cameraDegrees = 67;
	
	private boolean preloading = false;
	
	@Override
	public void create() {
		
		// Set up the environment
		environment = new Environment();
		environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
		environment.add(new DirectionalLight().set(0.8f, 0.8f,0.8f, -1f, -0.8f, -0.2f));
		
		// Set up the model batch
		modelBatch = new ModelBatch();

		// Set up the player camera
		playerCamera = new PerspectiveCamera(placeholder_cameraDegrees, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
		playerCamera.position.set(10f, 10f, 10f);
		playerCamera.lookAt(0, 0, 0);
		playerCamera.near = 1f;
		playerCamera.far = 300f;
		playerCamera.update();
		
		// Set up the assets manager
		assets = new AssetManager();
		assets.load("models/characters/goku/ss2.g3db", Model.class);
		preloading = true;
	}
	
	private void onAssetsLoaded() {
		
		playerModel = assets.get("models/characters/goku/ss2.g3db", Model.class);
		playerModelInstance = new ModelInstance(playerModel);
		preloading = false;
	}
	
	@Override
	public void render() {
		if(preloading && assets.update()) {
			onAssetsLoaded();
		}
		
		Gdx.gl.glViewport(0,  0,  Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT);
		modelBatch.begin(playerCamera);
			modelBatch.render( playerModelInstance, environment );
		modelBatch.end();
		
	}
	
	@Override
	public void dispose() {
		modelBatch.dispose();
		playerModel.dispose();
		assets.dispose();
	}
	
	@Override
	public void resume() {
		
	}
	
	@Override
	public void resize(int width, int height) {
		
	}
	
	@Override
	public void pause() {
		
	}
	
	public PerspectiveCamera getPlayerCamera() {
		return playerCamera;
	}
}