Android SharedPreferences无效

时间:2016-06-10 12:25:59

标签: android sharedpreferences

我想解决一个非常奇怪的问题

我的应用程序在我的所有测试设备中运行良好,在Nexus 5上恢复出厂设置后,当它尝试从带有代码的SharedPreferences中获取int

LEVEL_MAXIMO_ALCANZADO = sp.getInt(SP_NIVEL_JUEGO_MAXIMO, 1);

它给了我一个字符串(但只在Nexus 5中,在其他设备中它给我int,但在我的nexus 5中导致异常java.lang.String cannot be cast to java.lang.Integer

如果我使用代码

获取String的值
String prueba = sp.getString(SP_NIVEL_JUEGO_MAXIMO, "1");

我的值为5t+SNTiVFHA=

我不知道为什么这只会在出厂重置后通过nexus 5

如果有人可以给出提示,那就太棒了,我现在迷失了

代码 - (ctx是一个上下文对象)

 public static SharedPreferences sp;
 public static SharedPreferences.Editor editor;

  if(sp == null) sp = ctx.getSharedPreferences(SP_NAME, Context.MODE_PRIVATE);
  if(editor  == null) editor = sp.edit();

  editor.putInt(SP_DINERO, DINERO);
  editor.commit();

其他信息

我还尝试取消应用并重新启动设备

我使用了ObscuredSharedPreferences这个加密它们的类,在那个类中它给了我填充块损坏的异常,然后我交换到SharedPreferences但是同样的错误

由于我的phonne说当它只使用了5gb时已经满了,我把工厂重置了

所以设备上可能存在内存问题?

1 个答案:

答案 0 :(得分:0)

我刚刚进行了重置(擦除缓存并擦除数据,并从引导加载程序恢复出厂设置),现在又重新开始了

我认为内存已损坏且失败了。