大佬教程收集整理的这篇文章主要介绍了android – 序列化/反序列化和Proguard,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
事实上,与以前版本的apk和新版本的apk一起保存的对象存在问题.
在最新的APK(在Android Market上生产)中,我忘了配置我的proguard.cfg for serializable类(因此他们的静态最后的long serialVersionUID成员)…
所以当我尝试我的新的APK来重新加载以前存储的serializable类时,StackTrace DDMS中有一个InvalidClassException问题:
04-24 18:17:40.120: W/System.err(1204): java.io.InvalidClassException: cu; Incompatible class (SUID): cu: static final long serialVersionUID =6593847879518920343L; but expected cu: static final long serialVersionUID =0L; 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.verifyAndInit(ObjecTinputStream.java:2380) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readNewClassDesc(ObjecTinputStream.java:1662) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readClassDesc(ObjecTinputStream.java:683) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readNewObject(ObjecTinputStream.java:1803) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readNonPrimitiveContent(ObjecTinputStream.java:787) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readObject(ObjecTinputStream.java:2003) 04-24 18:17:40.125: W/System.err(1204): at java.io.objecTinputStream.readObject(ObjecTinputStream.java:1960)
我知道这是serializable对象及其serialVersionUID的一个混淆问题…
看完这个Proguard and Serialized Java Objects这是明确的暴露了我的问题,我无法解决我的问题…
在我的下一个APK中,我将其添加到我的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 ; private void writeObject(java.io.objectOutputStream); private void readObject(java.io.objecTinputStream); java.lang.object writereplace(); java.lang.object readResolve(); }
为了避免下一次更新的问题,我真的需要收回这些旧对象
我尝试用6593847879518920343L或0L更改serialVersionUID,没有成功…
任何想法 ?
提前感谢您的答案!
以上是大佬教程为你收集整理的android – 序列化/反序列化和Proguard全部内容,希望文章能够帮你解决android – 序列化/反序列化和Proguard所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。