我的PlayStore应用程序。当我使用新导出的apk更新我的应用程序时,SharedPreference键正在更改。您可以通过查看下面给出的json字符串来理解它。
我正在共享偏好中保存对象,如下所示。
在SharedPreference中保存用户详细信息。
Gson gson = new Gson();
String json = gson.toJson(user);
prefsEditor.putString("user", json);
prefsEditor.commit();
从sharedPrefernce获取详细信息
Gson gson = new Gson();
String json = myPref.getString("user", null);
Log.v(MainActivity.TAG, "Json == "+json);
user = gson.fromJson(json, User.class);
请查看我正在打印的jsons,将密钥更改为' a'' b'等
当我正常运行时,JSON为Json == {"accessToken":"12345678","country":"India","countryCode":"91","email":"","firstName":"Aneesh","lastName":"Kamalone","nickName":"Kamalone","notificationId":"","phoneNumber":"******","profilePic":"","uniqueId":"","userId":"*****","userLatitude":14.9,"userLogitude":79.6}
当我使用之前版本更新时,json为Json == {"a":"****","b":"Aneesh","c":"Kamalone","d":"Kamalone","e":"**********","f":"","g":"APA91bElQulddjH6xSR0WH8nfBGcFIbn-sRe-ChkhIx1c6Il05_wwGrTLm1QDNsr6TtaG1bIrICmXKhK1I8ZVzo0cqvwPWSj4NrxJKyzTsdPpNlizmGMaJfMWj_rjteP6yNoRFeDAZYfTCyhx-7WUAmTT2rX0q1S6Q","h":"","i":"12345678","j":"India","k":"91","l":14.9,"m":79.6,"n":""}
答案 0 :(得分:1)
它正在使用 proguard ,它会混淆您的User
课程。
Gson
默认使用字段名称作为键。所以我建议使用@SerializedName
注释来进行正确的json映射
答案 1 :(得分:0)
这是我的错误。我导出APK时未启用 proguard 。