为什么 提示空指针异常啊....

不一样的鞭炮 2009-11-17 10:11:55
包里面有两个文件,一个是midlet 另一个是class文件,我在class文件里面实现了 gamecanvas类,画了个地图和人物.然后在midlet文件里面实例化class文件类,为什么老是实例化失败,提示"java.lang.NullPointerException";
...全文
132 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
不一样的鞭炮 2009-11-18
  • 打赏
  • 举报
回复
确实
softice_ 2009-11-18
  • 打赏
  • 举报
回复
同意楼上,文件名前加/
不一样的鞭炮 2009-11-18
  • 打赏
  • 举报
回复
程序没有运行到 加载图片的地方就崩溃了,程序是在第9行崩溃的 gm=new kcbc();
kf156 2009-11-18
  • 打赏
  • 举报
回复
图片路径是什么?
加载图片部分改成下边这样,另图片的后缀名确认大小写


try{
img=Image.createImage("/dimian.PNG");
}catch(Exception ex){
System.out.pringln("img load error");
}

不一样的鞭炮 2009-11-18
  • 打赏
  • 举报
回复
kcbc 构造函数受保护 是不是不能实例化?
不一样的鞭炮 2009-11-18
  • 打赏
  • 举报
回复
package yxb;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ditu extends MIDlet {
private Display dis;
private kcbc gm;
public ditu() {
gm=new kcbc();
dis=Display.getDisplay(this);
dis.setCurrent(gm);

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

}

protected void pauseApp() {

}

protected void startApp() throws MIDletStateChangeException {

}


}

















package yxb;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;
public class kcbc extends GameCanvas implements Runnable {
private Graphics gra;
private TiledLayer t1,t2,t3;
private Sprite sp1;
private Image img;

protected kcbc() {
super(true);
gra=this.getGraphics();

try{
img=Image.createImage("dimian.PNG");
}catch(Exception ex){}
t1=new TiledLayer(6,6,img,img.getWidth()/10,img.getHeight());
t2=new TiledLayer(6,6,img,img.getWidth()/10,img.getHeight());
int ditu[][]=new int[][]{
{2,2,2,2,2,2},
{2,8,2,8,2,2},
{2,2,2,8,2,8},
{8,2,2,2,2,2},
{2,8,2,2,2,2},
{2,2,2,2,2,2}
};

for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(ditu[i][j]==2){
t1.setCell(j,i,ditu[i][j]);
}
}
}
t1.paint(gra);
}





public void run() {


}

}
kf156 2009-11-18
  • 打赏
  • 举报
回复
kcbc类的成员变量定义以及构造方法完整贴下
另,类名首字母建议大写
不一样的鞭炮 2009-11-18
  • 打赏
  • 举报
回复
private kcbc gm;
public ditu() { // 构造函数
gm=new kcbc(true); // 这里出错. 程序运行到这里崩溃
dis=Display.getDisplay(this);
dis.setCurrent(gm);

kcbc.java 在同一个包里面
public class kcbc extends GameCanvas { //

public kcbc(boolean suppressKeyEvents) { //构造函数
super(true);



java.lang.NullPointerException
at yxb.kcbc.<init>(+43)
at yxb.ditu.<init>(+13)
at java.lang.Class.runCustomCode(+0)
at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
at com.sun.midp.midlet.Scheduler.schedule(+52)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)
Execution completed.
zhouyongyang 2009-11-18
  • 打赏
  • 举报
回复
你把你的原码发出来就知道了
阁楼上的伟哥 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zl3450341 的回复:]
引用 3 楼 kf156 的回复:
只知道空指针,估计是zyyoung说的,有对象没实例化或赋值
异常提示全贴出来看看


[/Quote]
很多原因了……
zl3450341 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kf156 的回复:]
只知道空指针,估计是zyyoung说的,有对象没实例化或赋值
异常提示全贴出来看看
[/Quote]
kf156 2009-11-17
  • 打赏
  • 举报
回复
只知道空指针,估计是zyyoung说的,有对象没实例化或赋值
异常提示全贴出来看看
shyskybb 2009-11-17
  • 打赏
  • 举报
回复
原因很多了,向上面说的是一种,
还有,调用为null的变量,还有其他。。。。
zyyoung 2009-11-17
  • 打赏
  • 举报
回复
使用对象之前要new

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧