gpt4 book ai didi

java - Android 哈希表序列化

转载 作者:行者123 更新时间:2023-11-30 11:59:23 24 4
gpt4 key购买 nike

我在哈希表的序列化方面遇到了一个奇怪的问题。我做了一个服务器,客户端应用程序。服务器(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);

知道发生了什么事吗?

感谢您的帮助!

最佳答案

不要在架构之间使用序列化。无法保证序列化的 Dalvik VM 对象树的格式与 JavaSE/JavaEE 环境兼容。请使用 XML、JSON、Protocol Buffers、Thrift 等在架构之间传输结构化数据。

关于java - Android 哈希表序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2631686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com