Android sharedpreferences遇到一个奇怪的问题,请大神解释下

时间:2023-01-20 05:30:25
最近在工程中遇到一个奇葩的问题:
存储数据
mContext.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit().putLong(ID, value).commit();
然后通过:
mContext.getSharedPreferences(KEY, Context.MODE_PRIVATE).getLong(ID, -1);取出数据

但是,第一次运行OK,读取都没有问题,退出再次进入使用就有问题了:
在获取数据时,直接报错:java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
这是神马问题,请大神指点下!!!

3 个解决方案

#1


这个错误是强制转换的错,意思string不能强转为long。你贴完整一点呢

#2


引用 1 楼 u010668114 的回复:
这个错误是强制转换的错,意思string不能强转为long。你贴完整一点呢


找到问题了,是我SB的把两组get中的KEY写成了一个字段,所以导致存入的是string,而读出来的是long

#3


睡了一觉起来找到问题了
是我SB的把两组get中的KEY写成了一个字段,所以导致一组存入的是string类型,而用另一组读出来的是long类型,已解决

#1


这个错误是强制转换的错,意思string不能强转为long。你贴完整一点呢

#2


引用 1 楼 u010668114 的回复:
这个错误是强制转换的错,意思string不能强转为long。你贴完整一点呢


找到问题了,是我SB的把两组get中的KEY写成了一个字段,所以导致存入的是string,而读出来的是long

#3


睡了一觉起来找到问题了
是我SB的把两组get中的KEY写成了一个字段,所以导致一组存入的是string类型,而用另一组读出来的是long类型,已解决