首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.io.NotSerializableException:在尝试序列化包含android包的对象时,android.os.Bundle

java.io.NotSerializableException:在尝试序列化包含android包的对象时,android.os.Bundle
EN

Stack Overflow用户
提问于 2016-06-20 03:58:48
回答 1查看 1.9K关注 0票数 2

我想用Messageapi从智能手表发送一个对象到智能手机。由于messageapi需要字节数组来发送消息,所以我希望将我的对象转换为字节数组。我使用apache实用程序来序列化和反序列化。在序列化时,我得到了以下错误:

代码语言:javascript
复制
org.apache.commons.lang3.SerializationException: java.io.NotSerializableException: android.os.Bundle
           at org.apache.commons.lang3.SerializationUtils.serialize(SerializationUtils.java:156)
           at org.apache.commons.lang3.SerializationUtils.serialize(SerializationUtils.java:178)

我的对象有两个变量-一个字符串和一个android包。

以下是代码实现:

序列化:

代码语言:javascript
复制
byte[] data = SerializationUtils.serialize(myObject);

反序列化:

代码语言:javascript
复制
MyObject myObject = (MyObject) SerializationUtils.deserialize(byte[] data)

序列化包含android包的对象的最佳方法是什么?

MyObject类如下所示:

代码语言:javascript
复制
public class MyObject implements Serializable {

    private String type;
    private Bundle data;

    public String getType() {
        return type;
    }

    public void setType(String value) {
        type = value;
    }

    public Bundle getData() {
        return data;
    }

    public void setData(Bundle value) {
        data = value;
    }

}

PS:我尝试过Parcelable序列化包含android包的对象,它可以在相同操作系统版本的设备上工作。但是,当涉及到的两个设备有不同版本的OS时(例如,使用wifip2p从APILevel23设备发送消息到API 15设备),则无法工作。所以我在寻找一种一直有效的方法。

EN

回答 1

Stack Overflow用户

发布于 2016-06-20 06:10:18

问题:

我认为有些对象是不能序列化的,比如包和上下文。错误的原因,它自己是说不能序列化捆绑。

java.io.NotSerializableException: android.os.Bundle

解决方案:

尝试从private Bundle data;中删除MyObject并查看是否有相同的错误??

您需要找到一种序列化Bundle的方法。以下是一个你可以参考的问题:

How to serialize a Bundle?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37914453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档