The question contains several details, so my answer will be very general, but I hope that it will start you in the right direction.
If you are doing any reflection of the calling methods, you need to add the keep parameters to your configuration file. You need to keep all methods that are ever called via reflection (see Save Parameters in the manual).
For serialization, there is a recipe in the manual that should help:
-keepclassmembers,allowobfuscation class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient <fields>; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }
Incremental obfuscation options will prevent obfuscation between the client and server; see this section of the Proguard manual.
Hope this helps.
source share