我目前正在Netbeans中使用MIDlet(我正在使用Visual MIDlet),並且拋出了NullPointerException,但我不知道爲什麼。J2ME(Java) - 顯示類中捕獲的空指針異常
注意:僅當按下OK命令按鈕時,程序在仿真器上運行時纔會拋出異常。
以下是錯誤我得到
TRACE: <at java.lang.NullPointerException: 0>, Exception caught in Display class
java.lang.NullPointerException: 0
at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=46
at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=74
at com.sun.midp.chameleon.layers.SoftButtonLayer.soft1(), bci=37
at com.sun.midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=36
at com.sun.midp.chameleon.CWindow.keyInput(), bci=38
at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci=17
at com.sun.midp.lcdui.DisplayEventListener.process(), bci=277
at com.sun.midp.events.EventQueue.run(), bci=179
at java.lang.Thread.run(Thread.java:619)
我已經剝離出來的所有代碼無關的異常,這樣就可以讀取它更容易。 下面是一個簡化版本,如果我有代碼,它會拋出上述異常。
package stMidlet;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class StoryMidlet extends MIDlet implements CommandListener {
private boolean midletPaused = false;
private Command commandOk1;
private Form form1;
private TextField textField1;
public StoryMidlet() {
commandOk1 = new Command("Ok", Command.OK, 1);
textField1 = new TextField("Enter value: ", null, 120, TextField.ANY);
form1 = new Form(null, new Item[]{textField1});
form1.addCommand(commandOk1);
Display.getDisplay(this).setCurrent(form1);
}
/* There were some methods here pre-inserted by netbeans. */
/* I have not changed these, but I can post them if you need me too */
/* initialize() */
/* startMIDlet() */
/* resumeMidlet() */
/* switchDisplayable */
/* getDisplay() */
/* exitMidlet() */
/* startApp() */
/* pauseApp() */
/* destroyApp() */
public void commandAction(Command c, Displayable d) {
if (c == commandOk1)
{
System.out.println("Test");
}
}
}
我一直在試圖解決這個問題,至少一個小時,沒有佔上風。 我能想到的值得一提的唯一的一點是:
- 的Netbeans顯示一個警告與線Display.getDisplay(本).....稱沒有在構造函數中泄漏。我將它移入了初始化()方法,該方法已經調整了警告,但仍然發生異常。
任何幫助將不勝感激。
謝謝,湯姆。
調試只需一個小時?你有更多的坦克。嚴肅地說,深吸一口氣,走幾個小時。如果SO上的某個人不首先,你一定會得到它。 – Mike 2011-01-22 23:06:48
Display.getDisplay(this)據說泄漏,因爲'this'正在逃離構造函數。然而,根據你的構造函數設置,這不太可能導致NullPointerEXception(因爲所有東西都已經初始化) – 2011-01-24 15:46:07