Todas aplicações que fasso que contenham imagem acaba não iniciando(No emulador JWTK funciona corretamente).
Sendo que já verifiquei a existencia da imagem dentro do jar, e o correto nome do arquivo.
Como mencionei anteriormente, funciona CORRETAMENTE no Emulador do JWTK, mas no BUILD (bin/MeuArquivo.jad) e no celular não iniciam.
Sua dúvida é uma das mais respondidas aqui. Use a função busca. grato.
Hellmanss
¬¬’
Caro amigo, já li mais de 20 posts aqui e não encontrei o mesmo problema.
de nada ¬¬’
JavaES
Qual o tamanho da imagem em bytes? Pode ser que ela esteja um pouco grande.
Hellmanss
Tenho 3 imagens 980 bytes cada +/-
As 3 são .PNG
P
PoneyMan
Hellmanss:
Tenho 3 imagens 980 bytes cada +/-
As 3 são .PNG
Como eu disse, a maior parte dos problemas está na má especificação do path no código-fonte e sobre isto tem vários posts no fórum.
Hellmanss
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:
importjava.io.IOException;importjavax.microedition.midlet.MIDlet;importjavax.microedition.lcdui.Display;importjavax.microedition.lcdui.Graphics;importjavax.microedition.lcdui.Image;importjavax.microedition.lcdui.game.GameCanvas;importjavax.microedition.lcdui.game.LayerManager;importjavax.microedition.lcdui.game.Sprite;publicclassCanvasExempleextendsMIDlet{GameCanvasmyCanvas;publicCanvasExemple(){myCanvas=newMyCanvas2();}publicvoidstartApp(){Displaydisplay=Display.getDisplay(this);display.setCurrent(myCanvas);myCanvas.repaint();}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}}classMyCanvas2extendsGameCanvas{protectedMyCanvas2(){super(true);}privateLayerManagermanager;privateImagebackGroundImg;publicvoidpaint(Graphicsg){g.setColor(0xffffff);g.fillRect(0,0,getWidth(),getHeight());g.setColor(0x000000);// make sure it is blackg.fillRect(x,y,20,20);Imageimage=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");Spritesprite=newSprite(image);sprite.setPosition(x,y);manager=newLayerManager();manager.insert(sprite,0);manager.paint(g,0,0);}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}privateintx=getWidth()/2-10;privateinty=getHeight()/2-10;privateintdx=2;privateintdy=2;}
P
PoneyMan
Hellmanss:
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:
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);
}
Aparentemente o código está ok, no entanto acho desperdício vc instanciar a mesma imagem estática (arquivo) mais de uma vez, afinal o Paint é chamado múltiplas vezes. O certo seria este createImage estar sendo executado fora do Paint, portanto apenas 1 vez. Não vi motivo para vc fazer como está e já experimentou fazer do jeito q sugeri ? Já verificou se o tiledLayer1.PNG está no JAR e se é um arquivo válido (não-corrompido) ?
Hellmanss
Essa classe eu fiz apenas para testar o problema diretamente. Em minha implementação, carrego-os apenas no construtor.
Segue o Codigo Fonte e os arquivos JAD/JAR ja compilado.
Edit: Resolvido
Depois de fazer muitos testes, acabei descobrindo que o problema estava na imagem “tiledLayer1.PNG”
Eu refiz todas as imagens uma a uma, e funcionou quando a imagem do tiledLayer foi refeita. Eu a tinha pego na net(burro :lol: )…