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,问题解决。
无奈,把测试的手机那过来,果然奔溃。打印日志一看,得到日志如下:
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,问题解决。
相关文章推荐
- EventBus 和RxLifecycle 一起使用所引发的问题及解决办法 -java.lang.NoClassDefFoundError: android/os/PersistableBundle
- java.lang.NoClassDefFoundError: android/os/PersistableBundle和EventBus
- java.lang.NoClassDefFoundError: android/os/PersistableBundle
- java.lang.NoClassDefFoundError: android/os/PersistableBundle 解决一个你难以发现的报错
- 【异常处理已解决】java.lang.ClassNotFoundException: Didn't find class "android.os.PersistableBundle"
- java.lang.ClassNotFoundException: Didn't find class "android.os.PersistableBundle" on path: DexPathL
- java.lang.NoClassDefFoundError: android/os/PersistableBundle
- 【异常处理】java.lang.ClassNotFoundException: Didn't find class "android.os.PersistableBundle"
- java.lang.ClassNotFoundException:Didn't find class "android.os.PersistableBundle" on path 奇葩BUG解决
- eventbus出现java.lang.NoClassDefFoundError: android/os/PersistableBundle
- java.lang.NoClassDefFoundError: android/os/PersistableBundle
- Android出现:java.lang.NoClassDefFoundError: android/os/PersistableBundle
- Android之解决java.lang.NoSuchMethodError:android.os.powerManager.isInteractive问题
- DT升级中出现的问题的解决方案(Android upgrade ADT 22, R.java files not generated,java.lang.ClassNotFoundException)
- void android.os.Bundle.putBoolean(java.lang.String
- java.lang.NoSuchMethodError: android.os.Bundle.getString的解决办法
- java.lang.NoSuchMethodError: android.os.Bundle.getString
- 关于android编程遇到java.lang.OutOfMemoryError: bitmap size exceeds VM budget此类问题的原因及解决办法
- Android酱油笔记之关于java.lang.IllegalArgumentException: contains a path separator的问题
- Android中引用jar,提示java.lang.NoClassDefFoundError问题解决