Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android版本中的对象反序列化_Java_Android_Release - Fatal编程技术网

Java android版本中的对象反序列化

Java android版本中的对象反序列化,java,android,release,Java,Android,Release,我正在开发一个android应用程序,它必须与服务器通信(都是用java编写的)。为了通信,我使用自定义序列化对象(ObjectStream)。问题是,当我用调试配置构建我的android应用程序时,一切都很好,但是如果我使用发布配置,我在服务器端的反序列化过程中会遇到以下错误 java.lang.ClassNotFoundException:d.a.b.d.d 如何解决此问题?甚至可能吗?将此添加到您的/app/proguard rules.pro文件的末尾: -keepnames class

我正在开发一个android应用程序,它必须与服务器通信(都是用java编写的)。为了通信,我使用自定义序列化对象(ObjectStream)。问题是,当我用调试配置构建我的android应用程序时,一切都很好,但是如果我使用发布配置,我在服务器端的反序列化过程中会遇到以下错误

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


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

将此添加到您的
/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();
}
-keepnames类*实现java.io.Serializable
-keepclassmembers类*实现java.io.Serializable{
静态最终长SerialVersionId;
私有静态final java.io.ObjectStreamField[]serialPersistentFields;
!静态!瞬态;
私有void writeObject(java.io.ObjectOutputStream);
私有void readObject(java.io.ObjectInputStream);
java.lang.Object WriterReplace();
java.lang.Object readResolve();
}

这将防止proguard名称损坏可序列化类。

将其添加到
/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();
}
-keepnames类*实现java.io.Serializable
-keepclassmembers类*实现java.io.Serializable{
静态最终长SerialVersionId;
私有静态final java.io.ObjectStreamField[]serialPersistentFields;
!静态!瞬态;
私有void writeObject(java.io.ObjectOutputStream);
私有void readObject(java.io.ObjectInputStream);
java.lang.Object WriterReplace();
java.lang.Object readResolve();
}

这将防止proguard名称损坏可序列化类。

该错误可能是由proguard引起的。请尝试
-保留
-在proguard配置中发送的类。该错误可能是由proguard引起的。请尝试
-保留
-在proguard配置中发送的类。现在它可以识别类名,但serialVersionUID不匹配。java.io.InvalidClassException:本地类不兼容:stream classdesc serialVersionUID=-4153259734270116860,本地类serialVersionUID=-6717172171618781649您可能需要在服务器端和客户端设置serialVersionUID。否则,它将由编译器生成。现在它可以识别类名,但serialVersionUID不匹配。java.io.InvalidClassException:本地类不兼容:stream classdesc serialVersionUID=-4153259734270116860,本地类serialVersionUID=-6717172171618781649您可能需要在服务器端和客户端设置serialVersionUID。否则,它将由编译器生成。