0

私は市場にいくつかのアプリを持っていますが、最近、スタックトレースを提供するいくつかのエラーレポートを受け取りました。読み方や理解の仕方がよくわからないので、実際に問題を解決することができます。

以下はトレースの1つです。

java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.emsprotocols.nycemsprotocols/com.emsprotocols.nycemsprotocols.ConnectivitCheck}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at     com.emsprotocols.nycemsprotocols.ConnectivityCheck.onCreate(ConnectivityCheck.java:21)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
... 11 more

これが1エラーなのか2エラー以上なのかわかりません。そして、私は問題を解決する方法がわかりません。

4

3 に答える 3

3

デバッグとは原因を見つけることなので、次の行を探してください。

Caused by: java.lang.NullPointerException
at     com.emsprotocols.nycemsprotocols.ConnectivityCheck.onCreate(ConnectivityCheck.java:21)

次に、そのファイルの21行目を見てください。ポインタのない言語の場合、Javaは確かに多くのnullポインタ例外を取得するようです。通常発生するのは、基盤となる実装では、オブジェクトがデータ構造へのポインターになることです。オブジェクトのメソッドを呼び出すとき、すなわち

myObject.spindle()

VMは、myObjectを追跡するポインターをたどり、データ構造を見つけることを期待し、その構造内の全体の1つがsplined()と呼ばれるメソッドのコードにつながることを期待します。

問題は、myObjectがnullの場合、実際には、spindle()メソッドを検索するためのデータ構造がないことです。あなたはそれを不可能にするように頼みました-例外処理なしでは、プログラムは続行できません。

最も一般的には、オブジェクトがnullになる理由は、オブジェクトを他の何かから割り当てたために、オブジェクトを割り当てることができなかったため、nullが返されたためです。

問題の修正は、通常、次の3つのコースのうちの1つ以上に従います。

  • オブジェクトがnullである理由を理解し、それを修正します
  • メソッドを呼び出したり、フィールドにアクセスしたりする前に、オブジェクトがnullでないことをテストしてください
  • 例外を処理する-つまり、この状況が発生したときに回復する方法をプログラムに指示します
于 2012-04-30T01:44:23.640 に答える
2

com.emsprotocols.nycemsprotocols.ConnectivitCheckNullPointerExceptionが原因で、アプリケーションはアクティビティのロードに失敗します。

java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.emsprotocols.nycemsprotocols / com.emsprotocols.nycemsprotocols.ConnectivitCheck}:java.lang.NullPointerException

21行目のonCreateメソッドで例外が発生します。

原因:
com.emsprotocols.nycemsprotocols.ConnectivityCheck.onCreate(ConnectivityCheck.java:21)のjava.lang.NullPointerException

これは実際には1つのエラーであり、別のエラーによってラップされています(NullPointerExceptionによってラップされていますRuntimeException

于 2012-04-30T01:34:55.007 に答える
2

後にパッケージ名を見つけてくださいat、ここにあります

at     com.emsprotocols.nycemsprotocols.ConnectivityCheck.onCreate(ConnectivityCheck.java:21)

これは、21行目にConnectivityCheck.java問題があることを意味します。修正して続行してください。

于 2012-04-30T01:35:39.717 に答える