2014-12-01 39 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

那麼我設法解決它通過發送每個點擊的位置到服務器,而不是一個路徑類。但是當我序列化它時爲什麼它不工作?

相關問題