问题描述
我的项目运行正常,但是一旦我开始混淆代码,就会收到以下异常
致命异常:java.lang.RuntimeException:遇到可打包 IOException读取可序列化的对象(名称= com.mypackage.service.b.a)由java.io.InvalidClassException引起: com.mypackage.service.b.a);用于反序列化的类
这是在下面的broadcastReceiver中发生的
public class MyReceiver extends broadcastReceiver {
@Override
public void onReceive(final Context context,Intent intent) {
if (intent != null) {
UpdateServiceConfig config = null;
final Bundle bundle = intent.getBundleExtra(Keys.DATA);
if (bundle != null) {
crash => config = (UpdateServiceConfig) bundle.getSerializable(Keys.CONfig);
}
}
}
}
这是我的Proguard规则
-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 <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readobject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep class com.mypackage.service.config.UpdateServiceConfig { *; }
-keep class com.mypackage.service.config.config.** { *; }
在应用程序的其他部分,可以通过完全相同的方式从捆绑包中检索此类,而无需执行任何操作。看起来这是由broadcastReceiver处理的事实。你知道是什么原因造成的,以及如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)