【发布时间】:2014-02-07 20:00:01
【问题描述】:
如果我用新版本更新我的应用,sharedPreferences 就会消失。
LogCat 说:包 de.xxx.yyy 代码路径从 /data/app/de.xxx.yyy-1.apk 到 /data/app/de.xxx.yyy-2.apk; 保留 数据和使用新的
包装和以前一样。
清单文件的变化是:
android:versionCode="6" -> android:versionCode="7"
android:versionName="1.6.000" -> android:versionName="1.8"
并添加权限:
<uses-permission android:name="android.permission.VIBRATE" />
为什么是新的安装路径和新的数据? 有人知道发生了什么吗?
更新 也许proguard是问题所在。 ??? 新的 sharedPreferences 有其他结束字母。
OLD: de.xxx.yyy.a.f.xml
NEW: de.xxx.yyy.a.h.xml
我从课堂上得到名字。
SharedPreferences mPrefs = activity.getSharedPreferences(
THECLASS.class.getName(), Activity.MODE_PRIVATE);
【问题讨论】:
-
包名更改是正常的,但不应该清除首选项。您可能遇到了一些设备/模拟器错误。
-
谢谢,但我尝试了三种不同的设备。之前的更新并没有清除偏好。
-
您如何确认偏好已消失?你检查设备上的实际文件了吗?
-
数据仍在设备上。但是也有新的首选项。旧:de.xxx.yyy.a.f.xml 和新的有其他结尾字母 *.a.h.xml