【发布时间】:2010-04-13 17:21:26
【问题描述】:
我在 Hashtable 的序列化方面遇到了一个奇怪的问题。我制作了一个服务器、客户端应用程序。服务器(PC / MAC)正在序列化哈希表并通过UDP将其发送到客户端(Android)。数据已正确发送/读取,但我在 LogCat 上收到一堆这些消息。
04-12 11:19:43.059: DEBUG/dalvikvm(407): GetFieldID: 找不到字段 Ljava/util/Hashtable;.loadFactor:F
偶尔会看到这些
04-12 11:21:19.150: DEBUG/dalvikvm(407): GC 在 97 毫秒内释放了 10814 个对象 / 447184 个字节
应用会运行 2-3 分钟,然后崩溃。有趣的是,我在 SDK 1.5 上看不到 Loadfactor 错误。但我确实看到了 GC Free xxxx 对象,经常安静。
调试后我发现问题在于反序列化,错误/警告来自以下代码
代码:
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bis);
object = ois.readObject();
在 代码:
object = ois.readObject();
在客户端。我的服务器正在序列化代码如下。
代码:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
知道发生了什么吗?
感谢您的帮助!
【问题讨论】:
标签: java android serialization hashtable