Сериализация объекта между Android и ПК (Dalvik vs JVM) - PullRequest
4 голосов
/ 16 марта 2011

Я работаю с большой библиотекой, weka, и я хотел бы перенести экземпляры между версией для ПК и версией для 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, поскольку эти числа не соответствуют номеру, назначенному классу.Есть ли обходной путь?

1 Ответ

1 голос
/ 17 марта 2011

Не могли бы вы предоставить больше кода?Это похоже на возможную ошибку в основных библиотеках dalvikvm, которая может быть исправлена, если о ней будет сообщено.В Dalvik есть общедоступный трекер ошибок для просмотра и составления отчетов об ошибках.

Независимо от ошибки, вы сможете обойти проблему, добавив поле serialVersionUID в ваш класс.

...