确保发送方和接收方序列化对象保持一致
2017-04-30 10:17
281 查看
在开发中出现了一个异常,A应用给B应用发送广播,广播中携带序列化对象,这个对象在B应用中序列化实现的是Parcelable接口,在B应用中序列化实现的是Serializable接口于是这时候出现了下面报错
Caused by: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class ClassNameat android.os.Parcel.readParcelableCreator(Parcel.java:2301)
at android.os.Parcel.readParcelable(Parcel.java:2240)
at android.os.Parcel.readValue(Parcel.java:2147)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2478)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.getSerializable(BaseBundle.java:988)
at android.os.Bundle.getSerializable(Bundle.java:845)
at ClassName.onReceive(ClassName.java:868)
at android.app.LoadedApkReceiverDispatcherArgs.run(LoadedApk.java:866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5285)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
分析异常的时候很纳闷,明明是getSerializable最后为啥报错的时候说缺省了CREATOR属性,后来才发现误接收了B应用的广播,追查后才知道,A应用这部分实现是从B应用那边copy过来的,后来B应用改了下序列化实现方式于是就罪过了
bundle.setClassLoader(getClass().getClassLoader());相关文章推荐
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- 由于AddressFilter在EndpointDispatcher不匹配,To 为“http://*/*”的消息无法在接收方处理。请检查发送方和接收方的 EndpointAddresses 是否一致
- JAVA 中进行网络通信时 两端 序列化对象的类所处的包名必须一致
- 由于AddressFilter在EndpointDispatcher不匹配,To 为“http://*/*”的消息无法在接收方处理。请检查发送方和接收方的 EndpointAddresses 是否一致
- 对象序列化到文本并读取
- 理解Java对象序列化
- android 对象序列化Parcelable,Serializable详解
- Java 对象序列化控制
- java 序列化之当序列化遭遇继承,组合,对象引用
- CSS-如何让元素尺寸缩小时保持宽高比例一致?
- (好文)关于 Objective-c 和 Java 下 DES 加密保持一致的方式
- C# 对象的xml序列化和反序列化
- 序列化工具---对象序列化类库MsgPack介绍
- 存在依赖关系的存储过程与函数,其中的个别对象发生变化后,整个依赖关系是否自动保持?
- 使用序列化实现对象的拷贝
- C++对象序列化简介与选型
- jQuery序列化form表单数据为JSON对象的实现方法
- JSON对象反序列化为Java对象的时候自定义Date类型的字符串格式
- Java对象序列化