【发布时间】:2016-01-23 23:12:29
【问题描述】:
我需要有一个可以通过我的班级中的多个方法访问的共享首选项。为此,我将共享首选项设为公开,如下所示:
public SharedPreferences myPreference = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
然后我可以通过两种不同的方法访问它:
SharedPreferences.Editor editor=myPreference.edit();
当我这样做时,应用程序崩溃了,这是 logcat:
01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: 致命例外: main 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: 流程:com.example.griffin.dinnerplannerapp,PID:20873 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: java.lang.RuntimeException: 无法实例化 活动 组件信息{com.example.griffin.dinnerplannerapp/com.example.griffin.dinnerplannerapp.sundayActivity}: java.lang.NullPointerException:尝试调用虚拟方法 'android.content.Context android.content.Context.getApplicationContext()' 在一个空对象上 参考 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:
在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2439) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.access$800(ActivityThread.java:162) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.os.Handler.dispatchMessage(Handler.java:102) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: 在 android.os.Looper.loop(Looper.java:135) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.main(ActivityThread.java:5421) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: 在 java.lang.reflect.Method.invoke(Native 方法) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:
在 java.lang.reflect.Method.invoke(Method.java:372) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:
在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:引起:java.lang.NullPointerException:尝试 调用虚拟方法'android.content.Context android.content.Context.getApplicationContext()' 在一个空对象上 参考 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:
在 android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:106) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 com.example.griffin.dinnerplannerapp.sundayActivity.(sundayActivity.java:61) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 java.lang.reflect.Constructor.newInstance(Native Method) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:在 java.lang.Class.newInstance(Class.java:1606) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.Instrumentation.newActivity(Instrumentation.java:1066) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2272) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2439) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.access$800(ActivityThread.java:162) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.os.Handler.dispatchMessage(Handler.java:102) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:在 android.os.Looper.loop(Looper.java:135) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 android.app.ActivityThread.main(ActivityThread.java:5421) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime: 在 java.lang.reflect.Method.invoke(Native 方法) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:
在 java.lang.reflect.Method.invoke(Method.java:372) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/Android运行时:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)
任何帮助将不胜感激提前感谢。
【问题讨论】:
标签: java android sharedpreferences