Я проверил от java docs, что логическое и байтовое сериализуемое. Согласно android docs, мой класс реализует сериализуемый интерфейс. Я не уверен, почему я продолжаю получать исключение. Что мне здесь не хватает? Класс, как это:NotSerializableException в Android
public class msgStruct implements Serializable {
boolean pingPong = false;
int msgId = 0;
byte[] bufferMsg = new byte[100];
}
Это сериализовать перед отправкой через сокет на сервер, например:
sendMsgStruct.pingPong = false;
sendMsgStruct.msgId = msgId;
rand.nextBytes(sendMsgStruct.bufferMsg);
try {
ObjectOutputStream serializeMobile = new ObjectOutputStream(mobileSocket.getOutputStream());
serializeMobile.writeObject(sendMsgStruct);
serializeMobile.close();
} catch (IOException e1) {
e1.printStackTrace();
return false;
}
Сервер десериализует так:
try {
ObjectInputStream deserializeServer = new ObjectInputStream(clientSocket.getInputStream());
recvMsgStruct = (msgStruct) deserializeServer.readObject();
deserializeServer.close();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
Я получаю исключение в строках, где объект сериализуется и десериализуется.
Is msgStruct внутренний класс? Java не поддерживает сериализацию нестатических внутренних классов. Если msgStruct является внутренним классом, попробуйте изменить модификатор доступа на static. – rhoadster91