我想用Messageapi从智能手表发送一个对象到智能手机。由于messageapi需要字节数组来发送消息,所以我希望将我的对象转换为字节数组。我使用apache实用程序来序列化和反序列化。在序列化时,我得到了以下错误:
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包。
以下是代码实现:
序列化:
byte[] data = SerializationUtils.serialize(myObject);反序列化:
MyObject myObject = (MyObject) SerializationUtils.deserialize(byte[] data)序列化包含android包的对象的最佳方法是什么?
MyObject类如下所示:
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设备),则无法工作。所以我在寻找一种一直有效的方法。
发布于 2016-06-20 06:10:18
问题:
我认为有些对象是不能序列化的,比如包和上下文。错误的原因,它自己是说不能序列化捆绑。
java.io.NotSerializableException: android.os.Bundle
解决方案:
尝试从
private Bundle data;中删除MyObject并查看是否有相同的错误??
您需要找到一种序列化Bundle的方法。以下是一个你可以参考的问题:
https://stackoverflow.com/questions/37914453
复制相似问题