java - 带有context.getSharedPreferences(STORAGE_NAME,0)的java.lang.NullPointerException

标签 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");

最佳答案

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

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

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

相关文章:

java - 有@Embeddable ID时如何正确插入@Entity

java - jpa 序列 ID 生成

java - 使用 Google Guava 库进行 Android 开发是个好主意吗?

android - 我想在我的 Android 应用程序中使用 "Parse Notification"

android - 如何将切换按钮状态与前台服务同步?

android - SharedPreferences 不适用于具有自己进程的服务内部的 apply() 或 commit()

java - JMeter 是否支持 TLS v1.1 或 TLS v1.2

java - 如何防止用户在错误的时间和日期访问我的应用程序?

android - SharedPreferences 长值

java - Spring @Autowired 不在新线程上工作