Java SharedReference clear()引发nullpointerexception

Java SharedReference clear()引发nullpointerexception,java,android,nullpointerexception,Java,Android,Nullpointerexception,我正在尝试清除一个列表,我需要为其清除SharedReference。但在这样做时,我得到了一个nullpointerexception。 这是我的密码- MainActivity.savedLogName.edit().clear().commit(); MainActivity.savedLogNumber.edit().clear().commit(); MainActivity.savedLogTime.edit().clear().commit(); 我也尝试过使用remove(),

我正在尝试清除一个列表,我需要为其清除SharedReference。但在这样做时,我得到了一个nullpointerexception。 这是我的密码-

MainActivity.savedLogName.edit().clear().commit();
MainActivity.savedLogNumber.edit().clear().commit();
MainActivity.savedLogTime.edit().clear().commit();
我也尝试过使用remove(),但同样的错误仍然存在。下面是使用remove()的代码

注意-savedlogName、savedLogNumber和savedLogTime是在MainActivity中声明的静态变量。我在另一个活动班给他们打电话

主要活动-

savedLogName = PreferenceManager.getDefaultSharedPreferences(this);
        savedLogNumber = PreferenceManager.getDefaultSharedPreferences(this);
        savedLogTime = PreferenceManager.getDefaultSharedPreferences(this);

    logName = new ArrayList(Arrays.asList(TextUtils.split(savedLogName.getString("logName", null), ",")));
    logNumber = new ArrayList(Arrays.asList(TextUtils.split(savedLogNumber.getString("logNumber", null), ",")));
    logTime = new ArrayList(Arrays.asList(TextUtils.split(savedLogTime.getString("logTime", null), ",")));

如果SharedReference为空,我希望logName、logNumber和logTime初始化为null。那不会发生。它只是初始化为旧值,就像从未清除一样

context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit(); 
删除你所有的首选项

或者像这样把编辑器弄清楚

editor.clear();
editor.commit();

添加初始化statics savedLogName、Number等的代码@user3249477 done。编辑了描述。您好,这是可行的,但每次我重新启动应用程序时,日志都会不断返回,因为SharedReference变量是在MainActivity的onCreate()中初始化的。如何避免这种情况?我的理解是,在onCreate()中,您正在清除共享pref并打印一些日志消息,对吗?如果是这种情况,那么如果sharepref被清除(null或空),则将其放入If语句中跳过log msg。(请张贴主要的活动代码,这将有助于调试)。我的意思是调用日志。我刚刚编辑并发布了主要活动代码。请看一看,如果SharedReference为空,我希望logName、logNumber和logTime初始化为null。那不会发生。它只是初始化为旧值,就像它从未被清除一样。在onCreate()内部,首先检查共享pref是否为空,然后根据该值初始化变量。或者,当您清除shared pref时,请存储一些标志,并在初始化变量之前检查该标志。
editor.clear();
editor.commit();