Android的哈希表序列化 [英] Android Hashtable Serialization

查看:151
本文介绍了Android的哈希表序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Hashtable序列化一个奇怪的问题。我做了一个服务器,客户端应用程序。其中服务器(PC / MAC)被序列化Hashtable和通过UDP发送到客户端(Android版)。该数据发送/读取正确,但我得到了一堆下方LogCat中这些消息。

I am having a weird issue with serialization of a Hashtable. I have made a Server, Client app. Where server(PC/MAC) is serializing a Hashtable and sending it to Client(Android) through UDP. The data is sent/read correctly but I get a bunch of these messages below on LogCat.

11月4日至12日:19:43.059:DEBUG / dalvikvm(407):GetFieldID:无法找到现场Ljava / UTIL /哈希表; .loadFactor:F

04-12 11:19:43.059: DEBUG/dalvikvm(407): GetFieldID: unable to find field Ljava/util/Hashtable;.loadFactor:F

偶尔,我会看到这些

11月4日至12日:21:19.150:DEBUG / dalvikvm(407):GC释放10814对象/在97ms 447184字节

04-12 11:21:19.150: DEBUG/dalvikvm(407): GC freed 10814 objects / 447184 bytes in 97ms

该应用程序将运行2-3分钟,然后崩溃。有趣的是我没有看到SDK 1.5 Loadfactor错误。但我确实看到GC免费XXX​​X的对象,往往安静。

The app would run for 2-3 mins and then crash. Interestingly enough I do not see the Loadfactor errors on SDK 1.5. But I do see the GC Free xxxx objects, quiet often.

调试我发现,问题是与反序列化和错误/警告从以下code来了之后

After debugging I have found that the issue is with de-serialization and the error/warning are coming from following code

code:

ByteArrayInputStream bis = new ByteArrayInputStream(bytes);           
ObjectInputStream ois = new ObjectInputStream(bis);             
object = ois.readObject(); 


code:

at Code:

object = ois.readObject();

在客户端上。我的服务器被序列化code如下。

on the client. My server is serializing code is the following.

code:

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(bos);               
oos.writeObject(obj);       

任何想法是怎么回事?

Any idea what is going on?

感谢您的帮助!

推荐答案

不要使用架构之间的序列化。有没有保证序列化的Dalvik虚拟机对象树将在格式与一个JavaSE的/ JavaEE的环境相适应。请使用XML,JSON,协议缓冲区,节俭等,为架构之间传输结构化数据。

Do not use serialization between architectures. There is no guarantee that a serialized Dalvik VM object tree will be in a format that is compatible with a JavaSE/JavaEE environment. Please use XML, JSON, Protocol Buffers, Thrift, etc. for transferring structured data between architectures.

这篇关于Android的哈希表序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆