Finally reached a conclusion on this issue: it was being caused by Proguard, or more specifically, because I didn’t have a propper Proguard configuration.
It turns out Proguard was changing my Serializable
‘s classes names, which makes Class.forName(className)
fail.
I had to reconfigure my proguard.cfg
file adding the following lines:
-keep class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
!private <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}