Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 公共共享首选项导致应用程序崩溃_Java_Android_Sharedpreferences - Fatal编程技术网

Java 公共共享首选项导致应用程序崩溃

Java 公共共享首选项导致应用程序崩溃,java,android,sharedpreferences,Java,Android,Sharedpreferences,我需要有一个共享的首选项,它可以被我的类中的多个方法访问。为此,我将共享首选项设置为public,如下所示: public SharedPreferences myPreference = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 然后我可以通过两种不同的方法访问它: SharedPreferences.Editor editor=myPreference.edit(); 当我这样做时,应用

我需要有一个共享的首选项,它可以被我的类中的多个方法访问。为此,我将共享首选项设置为public,如下所示:

public SharedPreferences myPreference = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
然后我可以通过两种不同的方法访问它:

SharedPreferences.Editor editor=myPreference.edit();
当我这样做时,应用程序崩溃,下面是日志:

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:无法实例化 活动 ComponentInfo{com.example.griffin.dinnerplannerapp/com.example.griffin.dinnerplannerapp.sundayaActivity}: 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/AndroidRuntime:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2439) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.access$800(ActivityThread.java:162)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:102)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at-android.os.Looper.loop(Looper.java:135)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.main(ActivityThread.java:5421)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at java.lang.reflect.Method.invoke(本机) 方法)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/AndroidRuntime:at 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/AndroidRuntime:at com.example.griffin.dinnerplannerapp.sundayaActivity.(sundayaActivity.java:61) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at java.lang.reflect.Constructor.newInstance(本机方法)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at java.lang.Class.newInstance(Class.java:1606) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.Instrumentation.newActivity(Instrumentation.java:1066) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2272) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2439) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.access$800(ActivityThread.java:162)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:102)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at-android.os.Looper.loop(Looper.java:135) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at android.app.ActivityThread.main(ActivityThread.java:5421)01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at java.lang.reflect.Method.invoke(本机) 方法)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:at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) 01-23 18:02:51.764 20873-20873/com.example.griffin.dinnerplannerapp E/AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)


我们将非常感谢您的帮助。

您是否在清单中声明了访问外部存储的权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//私有静态MyApp实例; 私有静态上下文mContext

public static MyApp getInstance() {
    return instance;
}

public static Context getContext() {
  //  return instance.getApplicationContext();
  return mContext;
}

@Override
public void onCreate() {
    super.onCreate();
//  instance = this;
 mContext = getApplicationContext();    
}
}

以及舱单:


...

您是否声明了访问外部sto的权限
public static MyApp getInstance() {
    return instance;
}

public static Context getContext() {
  //  return instance.getApplicationContext();
  return mContext;
}

@Override
public void onCreate() {
    super.onCreate();
//  instance = this;
 mContext = getApplicationContext();    
}