1

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 ジンジャーブレッド (jre 1.5 または 1.6 を使用) で、私の PC は jre 1.7 ですが、問題になる可能性はありますか?

4

1 に答える 1

1

ここで私の問題に似ているように聞こえます-私はそれの底に到達したことはありませんが、JVMを変更して両端で同じバージョンを実行するとエラーが停止しました

于 2013-03-14T08:11:40.350 に答える