У меня есть проект SBT Scala:@SerialVersionUID «потерян» на Android?
подпроекта Lib содержит некоторые классы с @SerialVersionUID, например, в:
@SerialVersionUID (10L) класс MyStuff распространяется Serializable {...}
приложение Project является Android приложение (использует андроид-СДК-плагин), он импровизировать, как его зависимость
у меня есть файл, в который я SER ialized ряд объектов MyStaff, используя локальную JVM на моем Dev машины (1.7.0_75)
Когда я пытаюсь десериализации этот файл, используя ту же JVM, все работает отлично
Когда я пытаюсь десериализации этот файл на Android, используя точно такой же код, появляется следующее сообщение об ошибке:
java.io.InvalidClassException: com.example.MyStuff; Несовместимый класс (SUID): com.example.MyStuff: статический окончательный длинный serialVersionUID = 10L; но ожидаемый com.example.MyStuff: статический окончательный длинный serialVersionUID = -7513795898815927590L;
Итак, похоже, что мой serialVersionUID был потерян при переходе на Android. Любые идеи почему? Некоторые настройки proguard? Что-то напуганное с Дальвиком? Мне как-то глупо (скорее всего :))
Для примера, охватывающего все классы, посмотрите здесь: https://www.guardsquare.com/en/proguard/manual/examples#serializable – Nate