当我为我的应用程序构建一个新的 APK 时,旧的序列化保存数据不再加载,我得到这个异常:
java.io.InvalidClassException: org.myapp.b.b; Incompatible class (SUID): org.myapp.b.b: static final long serialVersionUID =1L; but expected org.myapp.b.b: static final long serialVersionUID =0L;
我在 proguard.cfg 中有这个:
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
!private <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
我的 serialVersionUID 在代码中没有改变。当我调试时,一切正常,但是当我测试我的新 apk 时,它不会加载旧数据。
有任何想法吗?