5

アプリの起動時とシャットダウン時に java.lang.NullPointerException が発生します。エミュレーターからのエラーは「残念ながら、appname は停止しました」です。私がたくさんの新しいコードを書き、マニフェストを変更するまでは、問題なく動作していました。マニフェストではないことを願っていますが、私の質問は、どのコード行が問題であるかをどのように見つけることができますか? トレース ダンプは私には何の意味もありません。冗長ではありますが、さらに 11 個もあると、全体を把握することはできません。

そのエラーの意味がよくわかりません。調べてみましたが、意味のリストがあるようです。Project>Clean を試しましたが、マニフェストをもう一度いじってみましたが、それでもエラーが発生します。外部ライブラリをチェック/チェック解除しました。同じエラーが発生している他の人に対して人々が提案したことを実行しただけです。だから私は本当に知りたいのですが、どの行がそれを引き起こしたのですか?

これが役立つ場合の出力は次のとおりです。

06-29 08:37:23.680: E/AndroidRuntime(1225): FATAL EXCEPTION: main
06-29 08:37:23.680: E/AndroidRuntime(1225): java.lang.RuntimeException: Unable to    instantiate activity      ComponentInfo{com.upliftly.android/com.upliftly.android.UpliftlyActivity}: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.os.Looper.loop(Looper.java:137)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.main(ActivityThread.java:4340)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.reflect.Method.invokeNative(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.reflect.Method.invoke(Method.java:511)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at dalvik.system.NativeStart.main(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225): Caused by: java.lang.NullPointerException
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:101)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.Class.newInstanceImpl(Native Method)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at java.lang.Class.newInstance(Class.java:1319)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
06-29 08:37:23.680: E/AndroidRuntime(1225):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
06-29 08:37:23.680: E/AndroidRuntime(1225):     ... 11 more
4

4 に答える 4

8

通常、投稿したようなスタック トレースが表示された場合は、最後の行の後の行に注目する必要があります。

Caused by: 

ライン。その後、パッケージ名を持つ行を検出します。(ほとんどの場合) コードから例外を引き起こしたのはその行です。あなたが投稿したスタックトレースでは、その行は

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
于 2012-06-29T13:18:47.517 に答える
7

アプリのパッケージ名を探します (私はそれだと思いますcom.uplifty.android):

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)
于 2012-06-29T13:06:56.920 に答える
1

2つの回答が言ったように、次の例のようにパッケージ名を探してください:

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)

括弧は、エラーが発生した Java ファイルと行を示します。したがって、この場合は UpliftlyActivity.java の 19 行目です。

マニフェストまたはxmlファイルのエラーは、エラーのあるファイルまたは行番号を表示しないため、見つけにくいです。

于 2012-06-29T13:26:41.167 に答える
0

logcat では、パッケージ名とアクティビティ名が行番号で示されます。次に、使用可能な変数が何であるかという特定の行を観察する必要があり、その変数とそれに対応する xml ID を確認する必要があります。これを使用すると、このエラーを回避できます。私はあなたの投稿されたlogcatで思う

at com.upliftly.android.UpliftlyActivity.<init>(UpliftlyActivity.java:19)

上記の行は、エラーを確認して回避できるという点で、アクティビティ行のようです。

于 2012-06-29T13:22:31.980 に答える