Process: com.chenyueyu.maizixiyi, PID: 2117
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
at android.app.Activity.performSaveInstanceState(Activity.java:1175)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3164)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3223)
at android.app.ActivityThread.access$1100(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1226)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
at android.app.Activity.performSaveInstanceState(Activity.java:1175)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1223)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3164)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3223)
at android.app.ActivityThread.access$1100(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1226)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
这个是android中的一个BUG,activity中使用viewpager控件,viewpager中是fragment,当你fragmentActivity跳转至其他activi时,就会抛出上面的异常。
查了很久资料,终于解决了这个BUG,具体解决方法:
在所有的fragment中重载
onSaveInstanceState(Bundle outState)方法,(注意:是当前activity中所有的fragment)
具体如下:
//修复一些BUG(activity中fragment跳转另外一个activity)
@Override
@Override
public void onSaveInstanceState(Bundle outState) {
/*
*
注意这里传入的参数可以任意指定,目的使result的值不为null
*/
outState.putString("KEY", "WBUG_VALUE");
super.onSaveInstanceState(outState);
}
在StackOverflow网址上还有其他解决办法