Android碎片化问题 java.lang.NoClassDefFoundError: android/os/PersistableBundle 之解决方案

今天开发的时候,测试提交给我一个问题,我怎么测都测不出来,可在测试那一点就奔溃。

无奈,把测试的手机那过来,果然奔溃。打印日志一看,得到日志如下:

 W/System.err: java.lang.NoClassDefFoundError: android/os/PersistableBundle
 W/System.err:     at java.lang.Class.getDeclaredMethods(Native Method)
 W/System.err:     at java.lang.Class.getDeclaredMethods(Class.java:656)
 W/System.err:     at de.greenrobot.event.SubscriberMethodFinder.findSubscriberMethods(SubscriberMethodFinder.java:75)
 W/System.err:     at de.greenrobot.event.EventBus.register(EventBus.java:163)
 W/System.err:     at de.greenrobot.event.EventBus.register(EventBus.java:133)

后来Google了一下,原来是我们重写 Activity OnCreate导致的兼容性问题。

系统要求,我们重写OnCreate的时候,方法名必须以protected来声明,而我在项目中用的是public。

更改前:


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_personcenter_item_act);
        EventBus.getDefault().register(this);

        initView();
        initData();
        initFragment();
    }


更改后:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_personcenter_item_act);
        EventBus.getDefault().register(this);

        initView();
        initData();
        initFragment();
    }


OK,问题解决。

你可能感兴趣的:(个人)