4

だから私は数ヶ月前のアプリケーションを作り直しています(障害を取り除き、いくつかのものを改善しています)しかし今、私は見つけられなかった問題に遭遇し、それが何であるかわからない. 電話でアプリケーションを実行している場合、このエラーが発生します

01-20 22:37:46.595: E/AndroidRuntime(7350): FATAL EXCEPTION: main
01-20 22:37:46.595: E/AndroidRuntime(7350): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.stevedc.thinklogic/com.stevedc.thinklogic.TowerHanoi}: java.lang.NullPointerException
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.os.Looper.loop(Looper.java:137)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread.main(ActivityThread.java:4441)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at java.lang.reflect.Method.invokeNative(Native Method)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at java.lang.reflect.Method.invoke(Method.java:511)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at dalvik.system.NativeStart.main(Native Method)
01-20 22:37:46.595: E/AndroidRuntime(7350): Caused by: java.lang.NullPointerException
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:371)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:366)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at com.stevedc.thinklogic.TowerHanoi.<init>(TowerHanoi.java:42)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at java.lang.Class.newInstanceImpl(Native Method)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at java.lang.Class.newInstance(Class.java:1319)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
01-20 22:37:46.595: E/AndroidRuntime(7350):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)

誰かが私がどこに問題があるかを確認する必要がある方向に私を向けることができますか?

4

1 に答える 1

14

logcat から、あなたが呼び出したメソッドは

 PreferenceManager.getDefaultSharedPreferences(context); 

ここでのコンテキストが null の場合、そのような例外が発生する可能性があります。したがって、有効なコンテキストをパラメーターとして渡すようにしてください。次の方法を使用できます。

Context context = getApplicationContext();
于 2013-01-21T06:18:57.617 に答える