关于J2me加载图片出现的java.lang.IllegalArgumentException

    技术2022-05-20  34

    最近在用j2me平台开发Java移动应用,载入图片的时候总是出现下面这样莫名其妙的问题

     

    源代码:

     

     

    try{

    //load image to sprite

    Image image = Image.createImage(getClass().getResourceAsStream("/transparent.png"));

    sprite = new Sprite(image,50,50);

    Image imageTemp = Image.createImage("/nontransparent.png");

    nontransparentsprite = new Sprite(imageTemp,50,50);

    }catch(Exception ex){

    ex.printStackTrace();

    System.out.println("/n error!");

    }

     

     

    报错问题:

     

    java.lang.IllegalArgumentException

    at javax.microedition.lcdui.game.Sprite.<init>(+41)

    at ExampleGameCanvas.<init>(+74)

    at ExampleGameCanvasMidlet.startApp(+15)

    at javax.microedition.midlet.MIDletProxy.startApp(+7)

    at com.sun.midp.midlet.Scheduler.schedule(+270)

    at com.sun.midp.main.Main.runLocalClass(+28)

    at com.sun.midp.main.Main.main(+80)

     

     

    折腾了好久,终于在论坛上(http://topic.csdn.net/u/20080317/23/812e55a6-5139-4f94-a5de-07e7462c9ff5.html 特此感谢!)找到了解决方案。其实就是new Sprite(image,50,50);这句参数错误,因为我的图片是48x48的,而50不能被48整除故出现参数错误。

    我试着改成new Sprite(image,48,48);或者new Sprite(image,16,16);异常得以解决。

    希望对碰到这个问题的朋友有所帮助.


    最新回复(0)