Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Kryonet缓冲区溢出异常_Java_Android_Serialization_Buffer Overflow_Kryonet - Fatal编程技术网

Java Kryonet缓冲区溢出异常

Java Kryonet缓冲区溢出异常,java,android,serialization,buffer-overflow,kryonet,Java,Android,Serialization,Buffer Overflow,Kryonet,我正在尝试使用KryoNet库发送位图,但一直出现此错误 com.esotericsoftware.kryo.KryoException: Buffer overflow. Available: 0, required: 1000000 Serialization trace: mBuffer (android.graphics.Bitmap) at com.esotericsoftware.kryo.io.ByteBufferOutput.require(ByteBufferOutput.ja

我正在尝试使用KryoNet库发送位图,但一直出现此错误

com.esotericsoftware.kryo.KryoException: Buffer overflow. Available: 0, required: 1000000
Serialization trace:
mBuffer (android.graphics.Bitmap)
at com.esotericsoftware.kryo.io.ByteBufferOutput.require(ByteBufferOutput.java:189)
at com.esotericsoftware.kryo.io.ByteBufferOutput.writeBytes(ByteBufferOutput.java:283)
at com.esotericsoftware.kryo.io.ByteBufferOutput.writeBytes(ByteBufferOutput.java:269)
at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ByteArraySerializer.write(DefaultArraySerializers.java:36)
at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ByteArraySerializer.write(DefaultArraySerializers.java:25)
at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:577)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:68)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
at com.esotericsoftware.kryonet.Kr
这是我在服务器和客户端上使用的代码

serverKryo = new Server();
                    serverKryo.start();
                    serverKryo.addListener(listener);
                    try {
                        serverKryo.bind(5050, 5060);
                        Kryo kryo = serverKryo.getKryo();
                        kryo.register(Bitmap.class);
                        kryo.register(byte[].class);
                        kryo.register(String.class);
                  } catch (IOException e) {
            e.printStackTrace();
                      }

                }
客户端代码:

Thread kryoThread =    new Thread(new Runnable() {
            @Override
            public void run() {
                Client client = new Client(1000000,1000000);
                client.start();
                client.addListener(new Listener() {
                    @Override
                    public void connected(Connection connection) {
                        super.connected(connection);
                        Kryo kryo = client.getKryo();
                        kryo.register(Bitmap.class);
                        kryo.register(byte[].class);
                        kryo.register(String.class);
                        client.sendTCP(bitmap);
                    }

                    @Override
                    public void disconnected(Connection connection) {
                        super.disconnected(connection);
                    }

                    @Override
                    public void received(Connection connection, Object object) {
                            super.received(connection,object);
                        if (object instanceof  String){
                            String result = (String) object;
                            XposedBridge.log(""+result);
                        }
                    }
                });

                try {
                    client.connect(5000, "192.168.1.15" , 5050, 5060);

                } catch (IOException e) {
                    XposedBridge.log("problem in connect" );
                }

            }
        });
我试过以下方法 1-我已尝试使用构造函数增加缓冲区大小 2-阻止执行,直到bufferSize i大于所需的bufferSize(这不是一个好主意,它是一个无限循环) 3-使用不同的端口 4-在listener.connected函数中使用sendTCP