android - Android 上的 Netty ObjectEncoders/ObjectDecoders 导致 StreamCorruptedException

标签 android netty

我想在 Android 手机上编写一个客户端并将对象发送到在我的 Windows PC 上运行的服务器(使用 ObjectDecoderInputStream ),但是有这些异常

异常

java.io.StreamCorruptedException: unexpected end of block data
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.access$300(Unknown Source)
at java.io.ObjectInputStream$GetFieldImpl.readFields(Unknown Source)
at java.io.ObjectInputStream.readFields(Unknown Source)
at java.net.InetSocketAddress.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at org.jboss.netty.handler.codec.serialization.ObjectDecoderInputStream.readObject(ObjectDecoderInputStream.java:115)
at MainActivity.main(MainActivity.java:30)

但是当我在我的手机上使用 CompatibleObjectEncoder/Decoder 并在我的 PC 上使用 ObjectInputStream 时,它工作正常。如果我将 android 代码更改为 Java 代码,并在我的 PC 上运行客户端以使用 ObjectEncoder 及其相关的 InputStream 向我自己发送对象,它工作正常。

顺便说一句,我使用 netty 3.6.3 final,我的 android 设备是 2.3.7 gingerbread(使用 jre 1.5 或 1.6),我的 PC 是 jre 1.7,这会是个问题吗?

最佳答案

听起来与我的问题相似 here - 我从来没有深入了解它,但是更改 JVM 使两端运行相同的版本停止了错误

关于android - Android 上的 Netty ObjectEncoders/ObjectDecoders 导致 StreamCorruptedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15380344/

相关文章:

android - ionic 推送通知不在叠加层上显示通知(通知栏)

android - 对数组使用共享首选项

java - Netty 线程重命名Runnable

java - 有人请解释一下错误

java - 如何在android中制作具有两种颜色的imageview边框并固定尺寸边框宽度

android - 准备自定义 radio 组类型的布局

exception - Netty 服务器绑定(bind)异常

java - Netty:我应该创建新的 ChannelBuffer 来向每个客户端发送数据吗?

java - Netty:如何减少来自服务器的连续消息之间的延迟?

Java : ClassNotFoundException when running program with netty [Gradle]