我的应用程序在支持库 23.1.1 上运行良好。但是,升级到支持库 23.2.0 后,它开始崩溃。当我从 Activity 导航回主 Activity 时,会发生崩溃(例如,我从主 Activity 的操作栏菜单中打开“关于 Activity ”,然后按后退按钮返回主 Activity ,然后崩溃)。
崩溃日志在这里:
FATAL EXCEPTION: main Process: com.myapp.blah.blah, PID: 22124 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.blah.blah/com.myapp.blah.blah.ui.MainActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@41d10870: Unmarshalling unknown type code 6881391 at offset 4752 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) at android.app.ActivityThread.access$800(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5584) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@41d10870: Unmarshalling unknown type code 6881391 at offset 4752 at android.os.Parcel.readValue(Parcel.java:2087) at android.os.Parcel.readArrayMapInternal(Parcel.java:2321) at android.os.Bundle.unparcel(Bundle.java:249) at android.os.Bundle.getSparseParcelableArray(Bundle.java:1273) at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1884) at android.app.Activity.onRestoreInstanceState(Activity.java:989) at android.app.Activity.performRestoreInstanceState(Activity.java:961) at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1145) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2407) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)? at android.app.ActivityThread.access$800(ActivityThread.java:166)? at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1283)? at android.os.Handler.dispatchMessage(Handler.java:102)? at android.os.Looper.loop(Looper.java:136)? at android.app.ActivityThread.main(ActivityThread.java:5584)? at java.lang.reflect.Method.invokeNative(Native Method)? at java.lang.reflect.Method.invoke(Method.java:515)? at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)? at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)? at dalvik.system.NativeStart.main(Native Method)?
仅当我将开发人员调试选项设置为“不保留 Activity ”时,才会发生崩溃。如果关闭此选项,则不会发生崩溃。
崩溃发生在没有使用 Proguard 的 Debug模式下。
我不会在 Activity 之间传递任何包裹/bundle ,也不使用 startActivityForResult()。
在 Lollipop 之前和之后的设备上都会发生崩溃。
最佳答案
Unmarshalling exception when using SearchView with an id resource in appcompat 23.2
嗨,它可以通过实现onSavedInstance
和onRestore
来修复,但不要使用super。这种奇怪的行为
@Override
protected void onSaveInstanceState(Bundle outState) {
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
}
关于android - 升级到支持库 23.2.0 后,在偏移量 4752 处解码未知类型代码 6881391,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652481/