启动活动时出错

时间:2010-03-22 02:57:45

标签: android arraylist android-activity marshalling

按下按钮时我正在开始活动,并且通常(在其他应用程序中)没有问题。但是,当我按下此应用程序中的按钮时,我收到“无法编组值”错误。

LogCat的确切(ish)错误:

  

03-22 02:49:02.883:   WARN / System.err的(252):   java.lang.RuntimeException:Parcel:   无法编组价值   {CLASSNAME} @ 44dcf1b8

我觉得这可能与我传递给意图的额外内容有关。我将一个ArrayList作为序列化传递给这个新意图。我担心的是ArrayList包含的数据结构没有被序列化(因为它是个人数据结构)。

数组列表内容数据结构是否导致此问题?我还缺少其他什么东西?

3 个答案:

答案 0 :(得分:3)

确保您的类也实现了Serializable。仅仅因为ArrayList本身可以序列化,并不意味着如果您的类不可序列化,序列化将起作用。如果您尝试序列化未实现Serializable的类的ArrayList,则会出现此错误。

答案 1 :(得分:2)

尝试传递Parcelable而不是Serializable对象,这将解决问题。

答案 2 :(得分:0)

确保您使用的课​​程实现可序列化

如果您这样做:

Cars cars;
bundle.putSerializable("mySerializable", (java.io.Serializable) cars);

确保Cars类实现serializable:

public class Cars implements Serializable{