在升级到支持库23.2.0

时间:2016-02-26 13:03:38

标签: android android-support-library parcelable parcel

我的应用程序在支持库23.1.1上运行良好。但是,升级到支持库23.2.0后,它开始崩溃。当我从活动导航回主活动时发生崩溃(例如,我从主活动的操作栏菜单中打开about活动,然后按返回按钮返回主活动,然后崩溃)。

崩溃日志在这里:

  

致命例外:主要程序:com.myapp.blah.blah,PID:22124   java.lang.RuntimeException:无法启动活动   ComponentInfo {com.myapp.blah.blah / com.myapp.blah.blah.ui.MainActivity}:   java.lang.RuntimeException:Parcel android.os.Parcel@41d10870:   解组未知类型代码6881391在偏移4752处   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)   在android.app.ActivityThread.access $ 800(ActivityThread.java:166)at   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1283)   在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)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)at   dalvik.system.NativeStart.main(Native方法)引起:   java.lang.RuntimeException:Parcel android.os.Parcel@41d10870:   解组未知类型代码6881391在偏移4752处   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)   在android.app.Activity.onRestoreInstanceState(Activity.java:989)at   android.app.Activity.performRestoreInstanceState(Activity.java:961)at   android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1145)   在   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2407)   在   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)?   在android.app.ActivityThread.access $ 800(ActivityThread.java:166)?在   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1283)?   在android.os.Handler.dispatchMessage(Handler.java:102)?在   android.os.Looper.loop(Looper.java:136)?在   android.app.ActivityThread.main(ActivityThread.java:5584)?在   java.lang.reflect.Method.invokeNative(Native Method)?在   java.lang.reflect.Method.invoke(Method.java:515)?在   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1268)?   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)?在   dalvik.system.NativeStart.main(Native Method)?

如果我在上设置开发人员调试选项“不要保留活动”,则只会发生崩溃。如果此选项关闭,则不会发生崩溃。

在没有使用Proguard的调试模式下发生崩溃。

我没有在活动之间传递任何parcels / bundle,也不使用startActivityForResult()。

Lollipop设备前后都会发生崩溃。

我发现了两个类似的帖子herehere可能(或可能不)相关。

1 个答案:

答案 0 :(得分:0)

  

使用带有id资源的SearchView时的解组异常   appcompat 23.2

嗨,它可以通过工具onSavedInstanceonRestore修复,但不要使用super。这种奇怪的行为

@Override
    protected void onSaveInstanceState(Bundle outState) {
     }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {

    }