У меня есть игра с сохранением сериализации с помощью java.io. Экономия составляет Hashmap[String, Any]
. Классы, содержащиеся в Any
, имеют SerialVersionUID (1L). Я использую sbt с этой конфигурацией https://github.com/ajhager/libgdx-sbt-project.g8.Как я могу указать SerialVersionUID для scala.collection.mutable.Hashmap?
Когда я запускаю проект с desktop/run
он работает просто отлично, но баночка производства assembly
выдает эту ошибку:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.io.InvalidClassException: scala.collection.mutable.HashMap; local class incompatible: stream classdesc serialVersionUID = 1, local class serialVersionUID = -1796852918056492754
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Caused by: java.io.InvalidClassException: scala.collection.mutable.HashMap; local class incompatible: stream classdesc serialVersionUID = 1, local class serialVersionUID = -1796852918056492754
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:617)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at ntn.castersrun.IntoFileSaver$.getSave(IntoFileSaver.scala:34)
at ntn.castersrun.IntoFileSaver$.load(IntoFileSaver.scala:24)
Я, вероятно, следует сохранить как массив кортежей вместо этого, но я не могу понять что вызывает эту ошибку или как я могу это исправить.
я теперь использовать массив кортежей и имеют те же проблемы с UID класса tuple2. – Joonazan