Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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
Java 为什么这个类涉及序列化_Java_Android - Fatal编程技术网

Java 为什么这个类涉及序列化

Java 为什么这个类涉及序列化,java,android,Java,Android,我遇到以下序列化错误,我正在尝试读取保存到文件中的对象 java.io.InvalidClassException: com.testGame.scoreCard; Incompatible class (SUID): com.testGame.scoreCard: static final long serialVersionUID =-5895378336422852901L; but expected com.testGame.scoreCard: static final long se

我遇到以下序列化错误,我正在尝试读取保存到文件中的对象

java.io.InvalidClassException: com.testGame.scoreCard; Incompatible class (SUID): com.testGame.scoreCard: static final long serialVersionUID =-5895378336422852901L; but expected com.testGame.scoreCard: static final long serialVersionUID =0L;
 at java.io.ObjectInputStream.verifyAndInit(ObjectInputStream.java:2376)
 at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1658)
 at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:683)
 at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1799)
 at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1999)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1956)
但我不明白的是,为什么记分卡首先要序列化?我正在编写和读取的类(对象)是序列化的,不调用或使用记分卡类。它为什么要抱怨那门课?有没有办法知道为什么会涉及到这个记分卡?(顺便说一句,我正在使用eclipse)


谢谢

您尝试恢复的类是否间接依赖于记分卡,例如通过另一个类

要查看Eclipse中的依赖项,可以单击类名或方法名并按Ctrl+Shift+G,它将显示使用类或方法的所有位置


另一种发现依赖关系的方法是单击一个方法名并按Ctrl+Alt+H,它将显示您可以进一步发现的调用图。

您试图还原的类是否会间接依赖于记分卡,例如通过另一个类

要查看Eclipse中的依赖项,可以单击类名或方法名并按Ctrl+Shift+G,它将显示使用类或方法的所有位置


另一种发现依赖项的方法是单击一个方法名并按Ctrl+Alt+H,它将显示您可以进一步发现的调用图。

您可能正在序列化
记分卡的内部类吗?它们有对包含对象的秘密引用。

您可能正在序列化
记分卡的内部类吗?它们具有对包含对象的秘密引用。

这是一个很好的观点。我试过了,但还是找不到联系。我无法以某种方式调试它,并看到“variable/method”正在请求这个类?@Snake Remove
记分卡
实现可序列化
,然后重新测试。当序列化记分卡的人尝试这样做时,您将得到一个
NotSerializableException
,堆栈跟踪将告诉您这是谁。这是我一开始没有序列化它的地方。当我测试没有问题时,但我从Production中某个应用程序的ACRA报告中得到此错误,请尝试使用[Xstream][1]持久化您的类。它将对象流转换为XML,这将让您看到任何依赖项。[1] @Snake因此必须从实现可序列化的类继承。尝试在类中的私有void writeObject()方法中打印stacktrace。这一点很好。我试过了,但还是找不到联系。我无法以某种方式调试它,并看到“variable/method”正在请求这个类?@Snake Remove
记分卡
实现可序列化
,然后重新测试。当序列化记分卡的人尝试这样做时,您将得到一个
NotSerializableException
,堆栈跟踪将告诉您这是谁。这是我一开始没有序列化它的地方。当我测试没有问题时,但我从Production中某个应用程序的ACRA报告中得到此错误,请尝试使用[Xstream][1]持久化您的类。它将对象流转换为XML,这将让您看到任何依赖项。[1] @Snake因此必须从实现可序列化的类继承。尝试在类中的私有void writeObject()方法内打印stacktrace。感谢您的建议,但不存在记分卡的内部类。我想我将不得不等待,看看我是否会从生产中得到更多类似的崩溃(我在本地没有看到),谢谢你的建议,但记分卡的内部类不存在。我想我将不得不等待,看看我是否会从生产中得到更多类似的崩溃(我没有在本地看到)