当前位置: 移动技术网 > 移动技术>移动开发>Android > Android 出现:java.lang.NoClassDefFoundError...错误解决办法

Android 出现:java.lang.NoClassDefFoundError...错误解决办法

2019年07月24日  | 移动技术网移动技术  | 我要评论

今天测试突然给我说我写的xx界面一点app就crash了!

纳尼,我肯定表示不服啊!怎么可能出现一点击就崩溃的情况呢,明明自己的测试了的!

然后我又用自己的测试机试了下没问题(version:5.0.2),然后又使用crash的测试手机(version:4.4),乖乖,居然是4.4才会出现的情况!(4.4以下没有验证哈!可能都会吧!!!)

log显示:

 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 了!

最终找到了出现这个error的原因:

 @override
public void oncreate(bundle savedinstancestate, persistablebundle persistentstate) {
  super.oncreate(savedinstancestate, persistentstate);
}
@override
public void onsaveinstancestate(bundle outstate, persistablebundle outpersistentstate) {
  super.onsaveinstancestate(outstate, outpersistentstate);
}
@override
protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
}

@override
protected void onsaveinstancestate(bundle outstate) {
  super.onsaveinstancestate(outstate);
}

注意在写activity的时候,如果使用了public 两个bundle参数的方法,那么在4.4的机器上就会出现crash的情况!

至于为撒就还没有去细究,本质上,两个参数的其实还是走的一个参数的方法。。

public void oncreate(@nullable bundle savedinstancestate,
    @nullable persistablebundle persistentstate) {
  oncreate(savedinstancestate);
}

所以在写这些回调的时候不要马虎大意了,记得是复写protected开头的!!!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网