您的位置:首页 > 移动开发 > Android开发

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

2016-08-19 16:00 148 查看
今天开发的时候,测试提交给我一个问题,我怎么测都测不出来,可在测试那一点就奔溃。

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

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,问题解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐