当前位置: 首页 > 知识库问答 >
问题:

使用SharedPreferences保存时出错

杨轶
2023-03-14

我使用sharedpreferences保存了一些变量,但是我的save方法使应用程序崩溃,出现了空指针异常。

public void save() {

    SharedPreferences sp = context.getSharedPreferences(saveFile, Context.MODE_PRIVATE);
    //Use the editor for easier management, no calling edit and commit so many times. 
    SharedPreferences.Editor editor = sp.edit();

    editor.putInt("X", player.getX());
    editor.putInt("Y", player.getY());
    editor.putInt("level", player.getLevel());
    editor.putFloat("xp", player.getXp());
    editor.commit();
}

getSharedPreferences()本身不能工作,需要有上下文。在它之前,这可能是一个问题。我已经定义了上下文,导入了SharedPreferences,那么为什么这不起作用呢?

02-18 20:21:49.958: E/AndroidRuntime(1005): FATAL EXCEPTION: Thread-89
02-18 20:21:49.958: E/AndroidRuntime(1005): java.lang.NullPointerException
02-18 20:21:49.958: E/AndroidRuntime(1005): at com.package.game.GameScreen.save(GameScreen.java:856)
02-18 20:21:49.958: E/AndroidRuntime(1005): at com.package.game.GameScreen.updateLevelUp(GameScreen.java:364)
SharedPreferences sp = context.getSharedPreferences(saveFile, Context.MODE_PRIVATE);

共有1个答案

谭富
2023-03-14

您的上下文变量为null。确保它已经初始化,并且没有在相应的上下文oncreate()之前调用此代码。

 类似资料:
  • 我在将数据正确保存到SharedPreferences中时遇到问题。不知何故,最后一个editor.putstring方法被写入了我所有的首选项中,我不知道为什么。 根据官方文件,我做的一切都是对的。在此处输入链接描述 如有任何帮助,不胜感激。提前谢了。

  • 我想在下面的代码中通过SharedPreferences保存我的ToggleButton状态。请引导我。非常感谢。

  • 问题内容: 这是从网络摄像机保存视频的代码 当我在python中运行它时出现以下错误 请帮我解决这个错误 问题答案: Python / OpenCV 2.4.9不支持cv2.VideoWriter_fourcc,即3.x版本。如果您使用的是2.4.x: 更换 与 这里的好例子如何使用OpenCV和Python录制视频 转载以供参考:

  • MainActivity.class MainActivity中的

  • 问题内容: 使用SharedPreferences,此活动在启动时崩溃。首先,我将发布活动代码,然后将我的LogCat发布。非常感谢你们,你们总是有很大帮助!:-) 活动代码; 这是我的LogCat; 问题答案: 您必须在调用onCreate之后访问共享首选项。否则上下文将为null :)这就是为什么您会得到null指针异常的原因 移动这条线: 在onCreate()中