在Android和PC之间序列化对象(Dalvik vs JVM)

我正在使用大型库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,因为这些数字与分配给该类的数字不匹配.有解决方法吗?

解决方法:

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

无论错误如何,您都应该能够通过向班级添加serialVersionUID字段来解决问题.

上一篇:使用python或其他语言生成Dex文件


下一篇:逆向之Smali入门学习