में नल पॉइंटर अपवाद पकड़ा गया है, मैं वर्तमान में नेटबीन्स में मिडलेट्स (मैं विजुअल मिडलेट का उपयोग कर रहा हूं) के साथ काम कर रहा हूं, और एक नलपोइंटर एक्सेप्शन फेंक दिया जा रहा है लेकिन मुझे नहीं पता कि क्यों।जे 2 एमई (जावा) - डिस्प्ले क्लास
नोट: जब प्रोग्राम ओमुलेटर पर चलता है तो अपवाद नहीं फेंक दिया जाता है, केवल जब ओके कमांड बटन दबाया जाता है।
यहाँ त्रुटि मैं
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 (यह) के साथ एक चेतावनी से पता चला है .....। मैंने इसे प्रारंभिक() विधि में स्थानांतरित कर दिया जो चेतावनी को sedated, लेकिन अपवाद अभी भी होता है।
किसी भी मदद की सराहना की जाएगी।
धन्यवाद, टॉम।
केवल एक घंटे के लिए डिबगिंग? आपके पास टैंक में अधिक है। एक गंभीर नोट पर, गहरी सांस लें और कुछ घंटों तक चले जाओ। एसओ पर कोई व्यक्ति पहले नहीं होता है तो आपको निश्चित रूप से यह मिल जाएगा। – Mike
Display.getDisplay (यह) रिसाव कहा जाता है क्योंकि 'यह' कन्स्ट्रक्टर से बच रहा है। हालांकि, आपके कन्स्ट्रक्टर सेट अप के आधार पर, यह NullPointerEXception का कारण बनने की संभावना नहीं है (जैसा कि सबकुछ पहले ही शुरू हो चुका है) –