java - 从 AsyncTask 中的 SharedPreferences 获取字符串,java.lang.NullPointerException

标签 java android-studio sharedpreferences

我试图获取 AsyncTask 中 SharedPreferences 中保存的字符串,但不幸的是我收到以下错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)”

相关代码如下:

public class FetchData extends AsyncTask<Void, Void, String> {

    private Context context;
    String deviceId;

    private AsyncInterface asyncInterface;

    public FetchData(AsyncInterface asyncInterface) {
        this.context = context;
        this.asyncInterface = asyncInterface;
    }

    @Override
    protected void onPreExecute() {
        super.onPreExecute();

        SharedPreferences sharedPreferences = context.getSharedPreferences("deviceId", MODE_PRIVATE); //Error here
        deviceId = sharedPreferences.getString("deviceId", deviceId);

    }
}

我做错了什么?

最佳答案

也许您应该添加一个构造函数参数Context context

关于java - 从 AsyncTask 中的 SharedPreferences 获取字符串,java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49658604/

相关文章:

java - XmlPullParser 找不到名称中带有冒号的属性

android - Moshi - Android Studio Canary Alpha12 -ExternalSynthetic0 被定义多次

java - 如何从静态类获取 SharedPreferences 值

java - SharedPreferences 导致应用程序在 Android 中使用选项卡时强制关闭

flutter - Flutter接收Future数据(SharedPreferences)的问题

用于多对一关系的 Java DAO 类

java - "Could not find or load main class"是什么意思?

java - 不同屏幕尺寸的 Android 资源文件

java - 安卓工作室 - 设置背景()

android-studio - Playstore 错误 : App Bundle contains native code, 并且您尚未上传调试符号