java.lang.NullPointerException 与 context.getSharedPreferences(STORAGE_NAME, 0)

标签 java android sharedpreferences

我创建了一个用于使用SharedPreferences的类。在我的 Activity 中,我尝试添加一个项目并收到以下错误...

06-05 17:01:53.950: E/AndroidRuntime(3488): FATAL EXCEPTION: main
06-05 17:01:53.950: E/AndroidRuntime(3488): java.lang.NullPointerException
06-05 17:01:53.950: E/AndroidRuntime(3488):     at com.xcxcxc.helpers.Prefs.init(Prefs.java:16)
06-05 17:01:53.950: E/AndroidRuntime(3488):     at com.xcxcxc.helpers.Prefs.addStringProperty(Prefs.java:30)
06-05 17:01:53.950: E/AndroidRuntime(3488):     at com.xcxcxc.usersadapter.SplashActivity$1.callback(SplashActivity.java:78)
06-05 17:01:53.950: E/AndroidRuntime(3488):     at com.xcxcxc.usersadapter.SplashActivity$1.callback(SplashActivity.java:1)

这是我处理SharedPreferences的代码...

import android.content.Context;
import android.content.SharedPreferences;

public class Prefs {

    public static final String STORAGE_NAME = "ApplicationPrefs";

    private static SharedPreferences settings = null;
    private static SharedPreferences.Editor editor = null;
    private static Context context = null;

    public static void init(Context cntxt) {
        context = cntxt;
    }

    private static void init() {
        settings = context.getSharedPreferences(STORAGE_NAME, 0);
        editor = settings.edit();
    }

    /* String values */
    public static void addStringProperty(String name, String value) {
        if (settings == null || editor == null) {
            init();
        }
        editor.putString(name, value);
        editor.commit();
    }

    public static String getStringProperty(String name) {
        if (settings == null || editor == null) {
            init();
        }
        return settings.getString(name, null);
    }
}

这是我在Activity中调用的代码...

Prefs.addStringProperty("client_id", "1JDkv9sdfj8sf63rjs");

最佳答案

看起来上下文为空。在 addStringProperty(..) 之前设置 Context

Prefs.init(getApplicationContext());
Prefs.addStringProperty("client_id", "1JDkv9sdfj8sf63rjs");

关于java.lang.NullPointerException 与 context.getSharedPreferences(STORAGE_NAME, 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898221/

相关文章:

android - 如何为 Sqlite 中的 TEXT 列设置默认值?

android - 如何停止 android 上的 wifi 扫描?

java - BackupManager requestRestore() 已弃用,有什么替代方案?

java - 将 JFrame 设置为出现在中心不起作用?

java - 如何在UML中表示一个类在发布spring事件时调用另一个类的方法

android - 如何通过 adb 将消息注入(inject) logcat

java - 如何永久保存 SharedPreferences 中的数据

java - 改造无法将新 token 设置为请求 header

java - 如何让 slider 自动移动

java - 将图像移动到 JFrame 上单击的光标位置