【发布时间】:2016-06-20 03:58:48
【问题描述】:
我想使用 Messageapi 从智能手表向智能手机发送一个对象。由于 messageapi 需要字节数组来发送消息,我想将我的对象转换为字节数组。我使用 apache utils 来序列化和反序列化。序列化时出现以下错误:
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 bundle 的对象的最佳方法是什么?
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 包的对象,它可以在相同操作系统版本的设备中工作。但是当涉及的两个设备具有不同版本的操作系统时(例如,使用 wifip2p 从 API 级别 23 设备向 API 级别 15 设备发送消息),它就不起作用。所以我正在寻找一种一直有效的方法。
【问题讨论】:
-
你的
MyObject实现可序列化?? -
是的。 MyObject 确实实现了可序列化..
-
您能否编辑问题并在其中包含
MyObject类?? -
我在问题中添加了类
标签: android serialization android-bundle