【发布时间】:2011-07-08 15:41:31
【问题描述】:
我在跨 Android 版本保存/加载 ArrayList<HashMap<String, Object>> 时遇到问题。几天来我一直在 Google 和 SO 上寻找解决方案,但我尝试过的一切都没有奏效。
这是我得到的错误:
java.io.InvalidClassException: org.apache.harmony.luni.internal.util.ZoneInfo; 不兼容的类(SUID): org.apache.harmony.luni.internal.util.ZoneInfo: 静态最终长序列版本UID =-8334108180457627365L;但预期 org.apache.harmony.luni.internal.util.ZoneInfo: 静态最终长序列版本UID =2415005675580187790L;
我在包含 ObjectInputStream 和 ObjectOutputStream 的类中尝试了implement Serializable 和static final long serialVersionUID = 1L,但错误没有改变。进一步的测试表明,在遇到相同问题的两个不同应用上,该错误甚至不会发生变化,并且错误中的 SUID 完全取决于保存文件或尝试加载文件的 Android 版本。
我也尝试过 Parcelable,但没有成功。
如何保存和加载 ArrayList 而不出现此问题?
这是我尝试过的 ROM 的 SUID:
G1 1.6(CSDI V4 或 Super@tmel):-1970599206206877388L
Droid 2.2(CyanogenMod 6.1.2):-8334108180457627365L
Droid 2.3(CyanogenMod 7 nightly 12):2415005675580187790L
【问题讨论】:
标签: java android serialization arraylist