boas eu estou tentanto compilar um codigo de uma aplicacao midp mas da me sempre este erro:
Unable to create MIDlet snake.SnakeMain
java.lang.NullPointerException
o código é o seguinte:
7MIDLET MAIN/
[i]
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.midlet.MIDlet;
public class SnakeMain extends MIDlet
{
private Display display;
private SnakeCanvas snakeCanvas;
public SnakeMain ()
{
display = Display.getDisplay(this);
snakeCanvas = new SnakeCanvas ();
}
protected void startApp ()
{
display.setCurrent(snakeCanvas);
}
protected void pauseApp ()
{
}
protected void destroyApp (boolean b)
{
destroyApp(false);
notifyDestroyed();
}
}
[/i]
/GAMECANVAS/
[i]
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.GameCanvas;
public class SnakeCanvas extends GameCanvas implements Runnable
{
public int state;
public static final int STATE_RUNNING = 0;
public static final int STATE_STOP = 1;
public static final int MILLIS_PER_TICK = 1000 / 10;
private Snake snake;
private final static int sleepTime = 50;
private int loopCounter;
private boolean paused;
Thread t;
public SnakeCanvas ()
{
super(true);
initializeGame ();
}
void initializeGame ()
{
snake = new Snake (5, 5, 4, 1, 0);
paused = false;
loopCounter=0;
t = new Thread(this);
t.start();
}
public void run ()
{
Graphics g = getGraphics();
while (true)
{
processKeys ();
if (!paused)
{
snake.move ();
}
repaint();
try
{
Thread.currentThread().sleep(30);
}
catch(Exception e)
{
// fazer nada
}
}
}
private void processKeys ()
{
int keyStates = getKeyStates();
if((keyStates & UP_PRESSED) != 0)
snake.setDirection (0, -1);
if((keyStates & DOWN_PRESSED) != 0)
snake.setDirection (0, 1);
if((keyStates & RIGHT_PRESSED) != 0)
snake.setDirection (1, 0);
if((keyStates & LEFT_PRESSED) != 0)
snake.setDirection (-1, 0);
}
public void paint (Graphics g)
{
if (!paused)
{
snake.drawSnake (g);
}
}
}
[/i]
tenho estado a experimentar diferentes maneiras de fazer com que isto funcione mas nao consigo. tem qq coisa a ver com a maneira como as duas classes se ligam.
Nao sei como hei de por o Thread a funcionar nem o startApp ()…
Será que me podem ajudar?