2014-12-01 36 views
0

我正在尝试进行在线绘图游戏。为此,我在Android中使用Path类,并且需要将它发送到我的Java服务器。要做到这一点,我曾试图延长Path类,如下所示:使用套接字发送序列化的Android对象会引发InvalidClassException

public class SerializedPath extends Path implements Serializable { 
    private static final long serialVersionUID = -5974912367682897467L; 
} 

为了简化问题,并缩小问题,我所做的就是用outputStream.writeObject(新SerializedPath),然后将其发送outputStream.flush()其中outputStream是ObjectOutputStream的一个实例。在服务器上,我使用inputStream.readObject()来读取它,其中inputStream是ObjectInputStream的一个实例。我得到的例外是:

java.io.InvalidClassException:com.droplay.drawingonline.path.SerializedPath;无法创建实例 在java.io.ObjectInputStream.readOrdinaryObject(未知源) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at com.droplay.drawingonline .Session.run(Session.java:71) at java.lang.Thread.run(Unknown Source) 由于:java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedSerializationConstructorAccessor1.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.io.ObjectStreamClass.newInstance(Unknown Source) ... 5更多 引起来自:java.lang.RuntimeException:Stub! 在android.graphics.Path。(Path.java:24) ... 8个

现在,找出问题,我曾试图创建不具有任何成员,没有按新的类没有任何延伸,它确实有效。服务器没有抛出任何异常,它像一个魅力。我确保包名称相同,类名称相同,服务器使用与我的Android项目相同的SDK文件,并且Android应用程序和Java服务器中的文件代码完全相同,但我不断收到这个异常。该应用程序不会抛出任何异常。它发送对象就好了。请问我的代码有什么问题?感谢您的帮助! :)

回答

1

那么我设法解决它通过发送每个点击的位置到服务器,而不是一个路径类。但是当我序列化它时为什么它不工作?

相关问题