Я программирование игры в Java (Тетрисоподобные), но я получил эту ошибку при его запуске:Java: не Сериализуемое Исключение
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: java.awt.image.BufferedImage
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
at com.sun.proxy.$Proxy0.PoolPieces(Unknown Source)
at Fenetre.<init>(Fenetre.java:196)
at Score.lancerNewFenetre(Score.java:103)
Так эта ошибка происходит в самом начале, когда я пытаюсь извлечь Массив «Piece» с сервера (Class «Partie» (Game)), чтобы затем установить фигуры и быть в состоянии играть. Код, который делает произойти ошибка:
try
{
this.unpool = this.ninja.PoolPieces(this.id);
System.out.println(unpool);
this.setBoutons(this.unpool);
System.out.println("boutons set");
}
catch (RemoteException e)
{
e.printStackTrace();
}
Он разбивает на первой линии, где «unpool» кусок [], «Ниндзя» мой интерфейс, который я поставил в начале кода, и «PoolPieces» - мой метод, чтобы получить пул из 3 штук (Piece []). Вот код методы «PoolPieces»:
public Piece[] PoolPieces(Integer id)
{
Integer rang = this.listejoueurs[id].getRang(id);
Integer retour = rang + 1;
this.listejoueurs[id].setRang(retour);
this.leretourpieces = this.piecespartie[rang];
return this.leretourpieces;
}
Я создал класс «Joueur» (игрок), и каждый игрок имеет «Rang» (ранг). Таким образом, доступные фигуры одинаковы для всех игроков, и они извлекают пул частей в соответствии с их прогрессированием в игре. «listejoueurs» - это Joueur [], это массив, содержащий разных игроков для игры. «id» - это идентификатор для связи клиента с игроком: первый добавленный игрок добавляется в ячейку 0 в массиве, а id = 0 отправляется клиенту. Следующий игрок будет иметь id = 1 и т. Д. «leretourpiece» - это моя пьеса [], которую я хочу вернуть. Он взят из Piece [] [], созданного случайным образом в начале игры. Это массив из массива 3 шт. «leretourpiece» получает пул куска в соответствии с прогрессией игрока (как объясняется выше).
После поиска этой ошибки в Интернете я внедрил Serializable практически в каждом классе, но ничего не изменилось. Странная вещь также в том, что что-то ошибка не появляется, и ей удается получить пул, возможно, когда-то более 10 намерений или около того, но затем, когда вы кладете кусочки в сетку, у меня есть проблемы с смехом, заблуждения и т. Д. (это может быть ошибка в коде, который помещает кусок в сетку, я не уверен).
Так что я полностью застрял в этой проблеме, и я не могу найти, откуда она взялась. Большое спасибо за время, потраченное на то, чтобы прочитать это, и в конце концов помогите мне :)
Хорошо, я сделал изменение, которое вы предложили, но та же ошибка все еще выходит:/ –