Android发行版中的对象反序列化

问题描述 投票:1回答:1

我正在开发一个必须与服务器通信的android应用程序(都用Java编写)。为了进行通信,我使用自定义的序列化对象(ObjectStream的)。问题是,当我使用调试配置构建我的android应用程序时,一切正常,但如果使用发布配置,则在服务器端反序列化期间会出现以下错误。

java.lang.ClassNotFoundException:d.a.b.d.d

如何解决此问题?可能吗?

java android release
1个回答
0
投票

将此添加到/app/proguard-rules.pro文件的末尾:

-keepnames 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 void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

这应防止proguard破坏序列化类的名称。

© www.soinside.com 2019 - 2024. All rights reserved.