Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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
Android中的NotSerializableException_Android_Notserializableexception - Fatal编程技术网

Android中的NotSerializableException

Android中的NotSerializableException,android,notserializableexception,Android,Notserializableexception,我从中验证了布尔值和字节是可序列化的。根据,我的类实现了可序列化接口。我不知道为什么我总是得到例外。我错过了什么? 课程是这样的: public class msgStruct implements Serializable { boolean pingPong = false; int msgId = 0; byte[] bufferMsg = new byte[100]; } sendMsgStruct.pingPong = false; sendMsgStruc

我从中验证了布尔值和字节是可序列化的。根据,我的类实现了可序列化接口。我不知道为什么我总是得到例外。我错过了什么? 课程是这样的:

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();
    }
这在通过套接字发送到服务器之前是序列化的,如下所示:

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();
    }
服务器反序列化如下所示:

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();
    }

我在序列化和反序列化对象的行中遇到异常。

msgStruct是偶然的内部类吗?如果是这样的话,那么试着将其设置为静态的,或者将其移动到自己的java文件中。

msgStruct是否碰巧是一个内部类?如果是这样的话,那么试着将其设置为静态的,或者将其移动到自己的java文件中。

msgStruct是否碰巧是一个内部类?如果是这样的话,那么试着将其设置为静态的,或者将其移动到自己的java文件中。

msgStruct是否碰巧是一个内部类?如果是这样,那么尝试将其设置为静态,或者将其移动到自己的java文件。

msgStruct是内部类吗?Java不支持非静态内部类的序列化。如果msgStruct是内部类,请尝试将访问修饰符更改为static。msgStruct是内部类吗?Java不支持非静态内部类的序列化。如果msgStruct是内部类,请尝试将访问修饰符更改为static。msgStruct是内部类吗?Java不支持非静态内部类的序列化。如果msgStruct是内部类,请尝试将访问修饰符更改为static。msgStruct是内部类吗?Java不支持非静态内部类的序列化。如果msgStruct是一个内部类,请尝试将访问修饰符更改为static.bgse和@rhoadster91-谢谢。msgStruct实际上是一个内部类,我将它移动到了自己的java文件中。我不再获得NotSerializableException。然而,我现在得到了-StreamCorruptedException。根据这个线程-,我在创建套接字时只初始化一次输出和输入流。客户端发送4条消息,在第4条消息中抛出StreamCorruptedException。另一方面,服务器只接收第三条消息。这是时间问题吗?bgse和@rhoadster91-谢谢。msgStruct实际上是一个内部类,我将它移动到了自己的java文件中。我不再获得NotSerializableException。然而,我现在得到了-StreamCorruptedException。根据这个线程-,我在创建套接字时只初始化一次输出和输入流。客户端发送4条消息,在第4条消息中抛出StreamCorruptedException。另一方面,服务器只接收第三条消息。这是时间问题吗?bgse和@rhoadster91-谢谢。msgStruct实际上是一个内部类,我将它移动到了自己的java文件中。我不再获得NotSerializableException。然而,我现在得到了-StreamCorruptedException。根据这个线程-,我在创建套接字时只初始化一次输出和输入流。客户端发送4条消息,在第4条消息中抛出StreamCorruptedException。另一方面,服务器只接收第三条消息。这是时间问题吗?bgse和@rhoadster91-谢谢。msgStruct实际上是一个内部类,我将它移动到了自己的java文件中。我不再获得NotSerializableException。然而,我现在得到了-StreamCorruptedException。根据这个线程-,我在创建套接字时只初始化一次输出和输入流。客户端发送4条消息,在第4条消息中抛出StreamCorruptedException。另一方面,服务器只接收第三条消息。这是时间问题吗?