2013-07-24 82 views
0

想顯示一個LWUIT形式在地圖長點擊,但我得到以下錯誤切換到LWUIT形式

java.lang.NullPointerException 

at bw.a(), bci=1 
at bw.<init>(), bci=6 
at bt.<init>(), bci=10 
at by.<init>(), bci=48 
at bj.a(), bci=10 
at fv.<init>(), bci=54 
at ex.<init>(), bci=11 
at ed.<init>(), bci=33 
at com.org.whatsaround.WhatsAroundMidlet.showLocationView(), bci=17 
at gm.commandAction(), bci=80 
at b.a(), bci=59 
at v.b(), bci=10 
at c.d(), bci=6 
at ez.gestureAction(), bci=237 
at com.nokia.mid.ui.gestures.GestureHandler.handleGestureEvent(), bci=60 
at com.sun.midp.lcdui.DisplayEventListener.process(), bci=421 
at com.sun.midp.events.EventQueue.run(), bci=182 
at java.lang.Thread.run(Thread.java:661) 

的代碼

public void commandAction(Command c, Displayable d) { 
     if (c == LONG_TOUCH) { 

      GeoCoordinate coord = longTouch.getTouchAt(); 

      WhatsAroundMidlet.getInstance().showLocationView(country, phoneNumber, firstName, lastName, pTitle, pCategory, backListener, profilePic, coord); 
     } 


    } 
} 

回答

0

可以從看到你的堆棧跟蹤,在代碼中拋出的異常在方法showLocationView()中,NullPointerException可能是由於方法調用中的參數之一(countryphoneNumberfirstName, lastName等)pa在一個尚未初始化的對象中播放。

如果coord有過錯,你可以檢查這個如下:

if (c == LONG_TOUCH) { 
     GeoCoordinate coord = longTouch.getTouchAt(); 
     System.out.println(coord); 
} 

否則,你是你自己,因爲你沒有解釋如何以及在何處在你的代碼countryphoneNumberfirstNamelastName,等等實際上是人口稠密。

凡在堆棧跟蹤的函數的名稱未混淆,你可以查明如下:

  • com.org.whatsaround.WhatsAroundMidlet.showLocationView() - 在此方法中拋出異常。
  • gm.commandAction() - 觸發Command回調 - 即輸入您自己的代碼。
  • ez.gestureAction() - 內maps-gesture.jar
  • com.nokia.mid.ui.gestures.GestureHandler.handleGestureEvent()手勢的處理 - 這是通過已調用的maps-gesture.jar創建的手勢處理機由於長按。
  • com.sun.midp.lcdui.DisplayEventListener.process() - 這是傳遞事件給所有註冊的監聽者,在你的情況下這是一個LONG PRESS事件。
  • com.sun.midp.events.EventQueue.run() - (?從模擬器也許)底層事件循環
+0

你是對的,座標參數未初始化。謝謝大家 – bobo