在Android 4.x版本的手机上,在Activity页面,重写下面方法,会导致crush,报java.lang.NoClassDefFoundError: android/os/PersistableBundle的异常。
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
// super.onSaveInstanceState(outState, outPersistentState);
}
java.lang.NoClassDefFoundError: android/os/PersistableBundle
at java.lang.Class.getDeclaredMethods(Native Method)
at java.lang.Class.getDeclaredMethods(Class.java:703)
at com.squareup.otto.AnnotatedHandlerFinder.loadAnnotatedMethods(AnnotatedHandlerFinder.java:64)
at com.squareup.otto.AnnotatedHandlerFinder.loadAnnotatedProducerMethods(AnnotatedHandlerFinder.java:49)
at com.squareup.otto.AnnotatedHandlerFinder.findAllProducers(AnnotatedHandlerFinder.java:140)
at com.squareup.otto.HandlerFinder$1.findAllProducers(HandlerFinder.java:33)
at com.squareup.otto.Bus.register(Bus.java:190)
at tools.xiaoka.com.helloworld.PicassoActivity.onCreate(PicassoActivity.java:30)
错误是在otto注册的那一行报的。
解决方法:重写protected修饰的方法,而不是public。具体原因还不清楚。
@Override
protected void onSaveInstanceState(Bundle outState) {
// super.onSaveInstanceState(outState);
}