在一个活动的instanceState中,我们存储一个Serializable(bundle.putSerializable).
在Play商店的崩溃报告中,我们看到以下堆栈跟踪:
在Play商店的崩溃报告中,我们看到以下堆栈跟踪:
Caused by: java.lang.ClassNotFoundException: o.ণ at java.lang.Class.classForName(Class.java) at java.lang.Class.forName(Class.java:308) at android.os.Parcel$2.resolveClass(Parcel.java:2373) at java.io.ObjectInputStream.readNewClassDesc(ObjectInputStream.java:1641) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:657) at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1782) at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:761) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1983) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1940) at android.os.Parcel.readSerializable(Parcel.java:2381)
我们的代码被DexGuard模糊.
看起来Android是能够序列化该类,但不能反序列化该类.
我们目前可以想到的唯一原因是应用程序的升级(通过de Play商店).在版本之间,类被改变(因为Dexguard)使得反序列化不可能.
所以,我的问题是:Android在应用程序升级期间是否清除所有的应用程序的instanceState?