今天开发的时候,测试提交给我一个问题,我怎么测都测不出来,可在测试那一点就奔溃。
无奈,把测试的手机那过来,果然奔溃。打印日志一看,得到日志如下:
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,问题解决。