我在从我的Android应用程序向我的Java应用程序发送对象时遇到了一些麻烦。 我有一个完全相同的可序列化类。Android序列化 - java反序列化
它完美,当我从一个Java的机应用发送的对象使用在接收端的代码另一个问题:
@Override
public void run() {
super.run();
while(true){
try{
if(datagramSocket!=null)datagramSocket.close();
datagramSocket = new DatagramSocket(PORT);
buffer = new byte[4096];
inPacket = new DatagramPacket(buffer, buffer.length);
datagramSocket.receive(inPacket);
InetAddress clientAddress = inPacket.getAddress();
int clientPort = inPacket.getPort();
ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(bais));
Song song = (Song) ois.readObject();
song.setClientIP(inPacket.getAddress());
dc.addSong(song);
datagramSocket.close();
}catch (IOException e) {
System.out.println("IOException on receiving song: " + e);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但是当我尝试做同样的机器人(所以发送曲 - 从对象的Android对Java)我得到一个ClassCastException:
[Lcom.audiobuddy.serializables.Song; cannot be cast to com.audiobuddy.serializables.Song
首先,我认为这是因为包的名字是不同的,所以我改成了两边“com.audiobuddy.serializables”。但我看着我的错误,Android应用程序,更改了软件包,在前面添加了“[L”和“;”在后面...
两侧的松类具有相同的serialVersionUID
2012-12-03
dumazy