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、メソッド呼び出しのパラメータの 1 つ ( countryphoneNumberfirstNameなどlastName) が初期化されていないオブジェクトを渡していることが原因です。

に問題がある場合coordは、次のように確認できます。

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

それ以外の場合は、コードcountry、、、、などの方法と場所を説明していないため、独力です 。実際に居住されています。phoneNumberfirstNamelastName

スタック トレース内の関数の名前が難読化されていない場合は、次のことを確認できます。

  • 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 に答える