-2

私はAndroidが初めてです。エラーが発生java.lang.NullPointerExceptionし、java.lang.RuntimeExceptionアプリケーションが強制終了します。

10-18 06:04:12.676: E/AndroidRuntime(340): FATAL EXCEPTION: main
10-18 06:04:12.676: E/AndroidRuntime(340): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.md.ExpertRemote/com.md.ExpertRemote.first.ExpertRemote}: java.lang.NullPointerException
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.os.Looper.loop(Looper.java:123)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.main(ActivityThread.java:4627)
10-18 06:04:12.676: E/AndroidRuntime(340):  at java.lang.reflect.Method.invokeNative(Native Method)
10-18 06:04:12.676: E/AndroidRuntime(340):  at java.lang.reflect.Method.invoke(Method.java:521)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-18 06:04:12.676: E/AndroidRuntime(340):  at dalvik.system.NativeStart.main(Native Method)
10-18 06:04:12.676: E/AndroidRuntime(340): Caused by: java.lang.NullPointerException
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addViewInner(ViewGroup.java:1969)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addView(ViewGroup.java:1865)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.view.ViewGroup.addView(ViewGroup.java:1845)
10-18 06:04:12.676: E/AndroidRuntime(340):  at com.md.ExpertRemote.first.ExpertRemote.onCreate(ExpertRemote.java:286)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-18 06:04:12.676: E/AndroidRuntime(340):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-18 06:04:12.676: E/AndroidRuntime(340):  ... 11 more
4

1 に答える 1

8

スタック トレースを考えると、次の行のようになります。

at com.md.ExpertRemote.first.ExpertRemote.onCreate(ExpertRemote.java:286)

...おそらく引数の1つとして値を呼び出しViewGroup.addView()て渡しています。nullその引数は数レベル下でのみ検証されているため、スタック トレースの余分な行が表示されます。

ExpertRemote.java の 286 行を見て、値の 1 つが null になる理由を調べてください。(このような質問に対する私の経験では、オブジェクトを見つけるために間違った種類の ID を使用していることが原因であることがよくあります。) 残念ながら、コードを見ずにそれ以上の具体的なヘルプを提供することはできません。

これを学習体験として使用することが、次の 3 つの点で重要です。

  • スタック トレースの読み取り方法を学習します。非常に単純な最初のパスの 1 つは、コードが言及されている最初の場所を見つけることです。
  • デバッガーの使用方法を学習します。私は自分で Android 開発を行ったことはありません、デバッガーで実行すると、例外によって実行がトリガーされ、問題のある場所で一時停止することが予想されます。そうでない場合でも、デバッガーを使用すると、問題の診断を検証するのに役立ちます (たとえば、引数の値が実際に null であることを確認するなど)。
  • より良い質問を投稿する方法を学ぶ:問題を解決しようとしている場合に知っておくべきことを考えてください。もちろん、これを行うことは、そもそも自分の問題を解決するのにも役立つはずです...
于 2012-10-18T06:20:52.240 に答える