I'm making a simple 2d game for the android platform, which works perfectly from version 2.0 and above, but when testing it on a 1.6 device, it crashes immediately. On running the debugger, it seems that I'm getting a null pointer exception in the thread class. I was just wondering if anybody has any ideas as to where the problem might be.
Here's the code for the thread class:
package com.marcusortiz.burnination;
import android.graphics.Canvas;
import android.view.SurfaceHolder;
public class GameThread extends Thread
{
private SurfaceHolder sHolder;
private MainView panel;
private boolean isRunning;
public GameThread(SurfaceHolder sHolder, MainView panel)
{
this.sHolder = sHolder;
this.panel = panel;
}
public void setRunning(boolean isRunning)
{
this.isRunning = isRunning;
}
public SurfaceHolder getSurfaceHolder()
{
return sHolder;
}
@Override
public void run()
{
Canvas canvas;
while(isRunning)
{
canvas = null;
try
{
canvas = sHolder.lockCanvas(null);
synchronized(sHolder)
{
for(Sprite s : panel.getSprites())
{
s.update();
}
panel.onDraw(canvas);
}
}
finally
{
if(canvas != null)
{
sHolder.unlockCanvasAndPost(canvas);
}
}
}
}
}
Maybe there's some compatibility issues with this code that I'm not aware of--I'm very much a beginner when it comes to using threads.
EDIT: here's the requested stack trace
burnination [Android Application]
DalvikVM[localhost:8608]
Thread [<3> main] (Running)
Thread [<15> Binder Thread #3] (Running)
Thread [<13> Binder Thread #2] (Running)
Thread [<11> Binder Thread #1] (Running)
Thread [<17> Thread-9] (Suspended (exception NullPointerException))
GameThread.run() line: 53