Android应用更新中pkg的资源/代码路径更改

时间:2014-02-06 13:17:34

标签: android sharedpreferences

如果我使用新版本更新我的应用程序,则sharedPreferences将消失。

  

LogCat说:Package de.xxx.yyy codePath已更改   /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);

1 个答案:

答案 0 :(得分:4)

永远不要使用类名作为sharedPreferences的键。

最好为sharedPreferences使用常量String而不是类名。

Proguard将对您的类名进行模糊处理,如果您在项目中添加或修改某些内容,则可以更改此名称。使用proguard,您的类名是动态的。

SharedPreferences mPrefs = activity.getSharedPreferences(
                YOURSTRING, Activity.MODE_PRIVATE);