从HereMap切换到lwuit表单

时间:2013-07-24 14:41:15

标签: java-me here-api lwuit-form

在长时间点击地图时我试图显示一个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);
        }


    }
}

1 个答案:

答案 0 :(得分:0)

从堆栈跟踪中可以看出,方法showLocationView()中的代码中引发了异常,NullPointerException可能是由方法调用中的一个参数引起的({{1} },countryphoneNumberfirstName等)传入尚未初始化的对象。

如果lastName出错,您可以按如下方式检查:

coord

否则,您是独立的,因为您没有说明代码 if (c == LONG_TOUCH) { GeoCoordinate coord = longTouch.getTouchAt(); System.out.println(coord); } countryphoneNumberfirstName等的方式和位置。实际上已填充。

如果堆栈跟踪中的函数名称未经过模糊处理,您可以确定以下内容:

  • lastName - 在此方法中抛出异常。
  • 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() - 基础事件循环(也许来自模拟器?)