什么';Android Parcelable中writeList和WriteType列表的区别是什么
我在读取自定义对象列表时遇到问题。 wirteTyped/readList给出了解组未知类型代码异常,但是wirteTyped/readTypedList工作正常。 根据API文件什么';Android Parcelable中writeList和WriteType列表的区别是什么,android,Android,我在读取自定义对象列表时遇到问题。 wirteTyped/readList给出了解组未知类型代码异常,但是wirteTyped/readTypedList工作正常。 根据API文件 writeList使用writeValue来写入值,writeValue接受任何实现Parcelable协议的对象,并列出它自己 如果是这样,为什么writeList不能处理自定义对象。 我的目标当然是实现Parcelable Caused by: java.lang.RuntimeException: Par
- writeList使用writeValue来写入值,writeValue接受任何实现Parcelable协议的对象,并列出它自己
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@a7d7d2: Unmarshalling unknown type code 6881395 at offset 488
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.os.Parcel.readValue(Parcel.java:2319)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.os.Parcel.readArrayMapInternal(Parcel.java:2592)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.os.BaseBundle.unparcel(BaseBundle.java:221)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.os.BaseBundle.getStringArrayList(BaseBundle.java:1038)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.os.Bundle.getStringArrayList(Bundle.java:908)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.app.ActivityTransitionState.readState(ActivityTransitionState.java:133)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6238)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
09-28 10:58:01.432 9449 9449 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
谢谢。这可能是因为您的
自定义对象。你应该把它贴在这里。有时,您必须在从intent读取值之前设置ClassLoader
,以避免在解组时发生BadParcelableException:ClassNotFoundException
:
intent.setExtrasClassLoader(getClass().getClassLoader());
// reading value here: intent.getParcelableArrayListExtra()
嗨,那个班太大了。我真的不能把它贴在这里。基本上,我使用的是writeList和readList(List outVal,ClassLoader),我使用ABC.class.getclassloader()提供了ClassLoader。但它仍然只适用于readTypedList(列表,创建者c)。@WenChao您应该从LogCat
发布您的错误日志,以了解更多错误详细信息。也许ppl可以从编辑的日志中帮助您,我认为这里的日志不是很有帮助。@文超您应该先检查创建者
字段,然后检查writeToParcel
和构造函数(in)
。可能问题是当您写入和读取不同类型的字段时。