0

长时间单击地图时,我试图显示 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);
        }


    }
}
4

1 回答 1

0

从您的堆栈跟踪中可以看出,异常是在方法中的代码中引发的showLocationView(),这NullPointerException可能是由于方法调用中的参数之一(country, phoneNumber, firstName,lastName等)传入了一个尚未初始化的对象。

如果coord有问题,您可以检查如下:

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

否则,您将独自一人,因为您没有解释代码中的方式和 country位置,,,,phoneNumber等。实际上是人口。firstNamelastName

如果堆栈跟踪中的函数名称未被混淆,您可以确定以下内容:

  • 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()- 底层事件循环(也许来自模拟器?)
于 2013-07-26T07:28:53.570 回答