我们收到的崩溃报告如下:
java.lang.RuntimeException:无法启动活动ComponentInfo {com.zigzagworld.icjl.tanachbible / com.zigzagworld.icjl.tanachbible.ViewTextActivity}:java.lang.RuntimeException:Parcelable visitedClassNotFoundException读取Serializable对象(name = com .zigzagworld.icjl.tanachtext.w)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1951)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1972)
在android.app.ActivityThread.access $ 1500(ActivityThread.java:148)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1048)
在android.os.Handler.dispatchMessage(Handler.java:99)
在android.os.Looper.loop(Looper.java:150)
在android.app.ActivityThread.main(ActivityThread.java:4419)
at java.lang.reflect.Method.invokeNative(Native Method)
在java.lang.reflect.Method.invoke(Method.java:507)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:846)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
at dalvik.system.NativeStart.main(Native Method)
。 。 。其他几个“引起”痕迹,结尾于:
引起:java.lang.ClassNotFoundException:com.zigzagworld.icjl.tanachtext.w在loader dalvik.system.PathClassLoader [。]中 在dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
在java.lang.ClassLoader.loadClass(ClassLoader.java:551)
在java.lang.ClassLoader.loadClass(ClassLoader.java:511)
在至少一个报告中,用户添加了一条消息,指示只有在应用程序暂停了很长时间后返回应用程序时才会发生崩溃。
从ProGuard的映射文件中,我很确定装载程序找不到哪个类。它是一个扩展java.lang.Object
并实现Serializable
的实用程序类;我为onPause
调用ViewTextActivity
时序列化对象实例(Android在崩溃时尝试启动)。
如果应用程序在短时间内被推到后台,似乎没有任何问题。基于这些症状,我猜这个场景是:
ViewTextActivity
Bundle
时,它会失败。在卸载对象的类时,是否存在读取序列化对象的已知问题?还有什么我应该看的吗?是否存在某种ProGuard问题?我认为已发布的应用程序是使用Android SDK工具版本构建的,该版本刚好在当前版本(22.3)之前。
我应该提一下,我们还没有能够在我们自己的测试设备上重现这个问题。