Android 共享首选项正在经历异常
我得到这个问题,不知道如何找到这个问题,我也添加代码,我得到这个Android 共享首选项正在经历异常,android,Android,我得到这个问题,不知道如何找到这个问题,我也添加代码,我得到这个 Caused by: java.lang.NullPointerException at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:376) at android.preference.PreferenceManager.getDefaul
Caused by: java.lang.NullPointerException
at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:376)
at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:371)
at com.example.mine4.accelerometergpsmaster.MainApplication.onPreferenceChange(MainApplication.java:100)
at com.example.mine4.accelerometergpsmaster.MainActivity.onResume(MainActivity.java:108)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1259)
at android.app.Activity.performResume(Activity.java:5200)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2931)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2973)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2408)
at android.app.ActivityThread.access$600(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
我的代码:
public static void onPreferenceChange() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApplication.getInstance());
// Get latest settings, and update accordingly
boolean newState = sp.getBoolean("pref_onoff", false); // false is off/not-running
prefInterval = Integer.parseInt( sp.getString("pref_interval", "60") );
prefTimeout = Integer.parseInt( sp.getString("pref_timeout", "30") );
MainApplication.prefThreshold = Double.parseDouble( sp.getString("pref_threshold", "0.30") );
MainApplication.prefThreshold2 = MainApplication.prefThreshold + 9.80;
// If we turned off the service, handle that change
toggleState( newState );
}
现在请帮我设置这个问题,因为MainApplication.getInstance()是空的。
可能您忘记为MainApplication分配值。在分配代码之前调用了getInstance()或onPreferenceChange。请检查此值,否则不要使用Editor=sp.edit();请指出以下行:
MainApplication.java:100
&MainActivity.java:108
.100==sp=PreferenceManager.getDefaultSharedReferences(MainApplication.getInstance());108是MainApplication.onPreferenceChange();呼叫主要活动是的。查看崩溃的代码,唯一可以抛出NullPointerException
的是main应用程序.getInstance()
返回null
: