Android Proguard 混淆序列化对象
Android Proguard Obfuscation of serialized object
我有一个保存在数据库中的序列化对象。这是之前的版本。
public class Book implements Serializable{
String id;
}
在我当前的版本中,我已将 id
的数据类型更改为 int
。当我更新我的应用程序时,我从数据库中取回了反序列化的对象,但是 id
是 0
。
我试过使用applymapping
映射到旧版本。但是没用。
我还在 progaurd.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 void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
有人可以帮我吗?谢谢。
重写 readObject
方法并尝试逐字段读取新格式并在出错时回退到旧格式。
这家伙有一个验证读取数据的例子,还有:http://www.javapractices.com/topic/TopicAction.do?Id=45
我有一个保存在数据库中的序列化对象。这是之前的版本。
public class Book implements Serializable{
String id;
}
在我当前的版本中,我已将 id
的数据类型更改为 int
。当我更新我的应用程序时,我从数据库中取回了反序列化的对象,但是 id
是 0
。
我试过使用applymapping
映射到旧版本。但是没用。
我还在 progaurd.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 void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
有人可以帮我吗?谢谢。
重写 readObject
方法并尝试逐字段读取新格式并在出错时回退到旧格式。
这家伙有一个验证读取数据的例子,还有:http://www.javapractices.com/topic/TopicAction.do?Id=45