Fiz alguns outros testes aqui e verifiquei que o erro ocorre quando eu adiciono mais de uma Imagem(comentario linha 53).
Mesmo assim não sei pq está ocorrendo…
Segue a classe teste que eu fiz:
[code]
import java.io.IOException;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
public class CanvasExemple extends MIDlet {
GameCanvas myCanvas;
public CanvasExemple() {
myCanvas = new MyCanvas2();
}
public void startApp() {
Display display = Display.getDisplay(this);
display.setCurrent(myCanvas);
myCanvas.repaint();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
class MyCanvas2 extends GameCanvas {
protected MyCanvas2() {
super(true);
}
private LayerManager manager;
private Image backGroundImg;
public void paint(Graphics g) {
g.setColor(0xffffff);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0x000000); // make sure it is black
g.fillRect(x, y, 20, 20);
Image image = null;
try {
//com isto comentado o Sprite poppula normalmente, mas quando tento criar mais de uma imagem, o aplicativo nao inicia.
// backGroundImg = Image.createImage("/tiledlayer1.PNG");
image = Image.createImage("/smile.PNG");
Sprite sprite = new Sprite(image);
sprite.setPosition(x, y);
manager = new LayerManager();
manager.insert(sprite,0);
manager.paint(g, 0, 0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private int x = getWidth() / 2 - 10;
private int y = getHeight() / 2 - 10;
private int dx = 2;
private int dy = 2;
}[/code]