gpt4 book ai didi

java - 使用套接字发送序列化的 Android 对象会抛出 InvalidClassException

转载 作者:行者123 更新时间:2023-11-30 02:31:48 27 4
gpt4 key购买 nike

我正在尝试制作在线绘画游戏。为此,我在 Android 中使用 Path 类,我需要将它发送到我的 Java 服务器。为此,我曾尝试扩展 Path 类,如下所示:

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

为了简化事情并缩小问题范围,我所做的只是用 outputStream.writeObject(new SerializedPath) 发送它,然后用 outputStream.flush() 发送它,其中 outputStream 是 ObjectOutputStream 的一个实例。在服务器上,我只是使用 inputStream.readObject() 读取它,其中 inputStream 是 ObjectInputStream 的一个实例。我得到的异常(exception)是:

java.io.InvalidClassException: com.droplay.drawingonline.path.SerializedPath; unable to create instance at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 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) Caused by: 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 more Caused by: java.lang.RuntimeException: Stub! at android.graphics.Path.(Path.java:24) ... 8 more

现在,为了隔离问题,我曾尝试创建一个没有任何成员且不扩展任何内容的新类,但它确实有效。服务器没有抛出任何异常,它工作得很好。我确保包名称相同,类名称相同,服务器使用与我的 Android 项目相同的 SDK 文件,并且 Android 应用程序和 Java 服务器中的文件代码完全相同,但是我不断收到这个异常(exception)。该应用程序不会抛出任何异常。它发送对象就好了。请问我的代码有什么问题?感谢您的帮助! :)

最佳答案

好吧,我设法通过将每次点击的位置而不是路径类发送到服务器来解决这个问题。但是为什么我连载的时候没有效果呢?

关于java - 使用套接字发送序列化的 Android 对象会抛出 InvalidClassException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27234732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com