【问题标题】:Serializing object between Android and PC (Dalvik vs JVM)Android和PC之间的序列化对象(Dalvik vs JVM)
【发布时间】:2011-03-16 20:36:08
【问题描述】:

我正在使用一个大型库 weka,我想在 PC 版本和 Android 版本之间传输实例。我宁愿不必重写两者之间的整个序列化,但不管我改变什么UID,我总是得到这个错误:

java.io.InvalidClassException: [Lweka.classifiers.functions.MultilayerPerceptron$NeuralEnd;; Incompatible class (SUID): [Lweka.classifiers.functions.MultilayerPerceptron$NeuralEnd;: static final long serialVersionUID =-359311387972759020L; but expected [Lweka.classifiers.functions.MultilayerPerceptron$NeuralEnd;: static final long serialVersionUID =1920571045915494592L;

看起来数组本身的 SUID 错误,因为这些数字与分配给类的数字不匹配。有解决办法吗?

【问题讨论】:

  • 你最终解决了这个问题吗?我在 Galaxy Nexus 上遇到了同样的问题,而它在 Nexus 5 上运行。

标签: android serialization jvm dalvik weka


【解决方案1】:

您能提供更多代码吗?看起来可能是dalvikvm核心库中的一个bug,如果被报告可以修复。 Dalvik 有一个public bug tracker 用于审查和报告错误。

不管有什么错误,您都应该能够通过在您的类中添加一个serialVersionUID 字段来解决该问题。

【讨论】:

  • 这是在我的代码中:`protected class NeuralEnd extends NeuralConnection { /** 用于序列化 */ private static final long serialVersionUID = 1L; ` 如您所见,我没有定义错误中显示的serialVersionUID。我的预感是数组 uid 不同。
猜你喜欢
  • 2016-09-04
  • 2011-04-03
  • 2019-11-17
  • 1970-01-01
  • 2012-07-31
  • 2020-10-19
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多