Java-kryonet-неверное количество байтов (осталось 1), используемых для десериализации объекта: null
Я смотрел и смотрел. Все говорят, чтобы просто убедиться, что мои пакеты зарегистрированы в правильном порядке, но они есть. Вот код:
Клиент:
Client client = new Client(); client.start(); try { client.connect(5000, "127.0.0.1", 54555, 54777); } catch (IOException e) { JOptionPane.showMessageDialog(null, "Connection failed."); } client.getKryo().register(packet.class); client.getKryo().register(connect.class); connect cnt = new connect(); cnt.name = "ClientConnect"; client.sendTCP(cnt);
Сервер:
Server server = new Server(); server.start(); server.bind(54555, 54777); System.out.println("Server started."); server.getKryo().register(packet.class); server.getKryo().register(connect.class); server.addListener(new Listener() { public void received (Connection connection, Object object) { if (object instanceof packet) { if (object instanceof connect) { connect p1 = (connect) object; } } } });
Полный текст сообщения об ошибке:
00:00 INFO: Connecting: /127.0.0.1:54555/54777 Exception in thread "Client" com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146) at com.esotericsoftware.kryonet.Client.update(Client.java:255) at com.esotericsoftware.kryonet.Client.run(Client.java:338) 00:00 ERROR: [kryonet] Error updating connection. at java.lang.Thread.run(Thread.java:745) com.esotericsoftware.kryonet.KryoNetException: Incorrect number of bytes (1 remaining) used to deserialize object: null at com.esotericsoftware.kryonet.TcpConnection.readObject(TcpConnection.java:146) at com.esotericsoftware.kryonet.Client.update(Client.java:255) at com.esotericsoftware.kryonet.Client.run(Client.java:338) at java.lang.Thread.run(Thread.java:745)
Что я уже пробовал:
Я убедился, что использую ту же IDE (Android Studio), пакеты регистрируются в том же порядке, и я использую тот же JDK. Я понятия не имею, почему это не сработает.
Richard MacCutchan
Скорее всего, вам нужно спросить людей, которые написали kryonet.