应用程序崩溃的super.onSaveInstanceState [英] App crashes on super.onSaveInstanceState
问题描述
可能重复:结果
<一href=\"http://stackoverflow.com/questions/12217681/nullpointerexception-on-onsaveinstancestate-with-androidfragments\">NullPointerException在用的onSaveInstanceState AndroidFragments
块引用>当我打电话super.onSaveInstanceState我得到一个
空指针异常
在android.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1542)
在某些设备上,其他一些工作。公共无效的onSaveInstanceState(捆绑savedInstanceState){
// ...
super.onSaveInstanceState(savedInstanceState);
}随着台Nexus平板电脑的Android 4.1它的工作,与Android 4.0的不是三星。这里有什么问题,我该怎么解决呢?取消注释工作的onSaveInstanceState,但我不认为这是正确的,它使我的应用程序的行为不正确别的地方。
谢谢
马文编辑
加入堆栈跟踪致命异常:主要
显示java.lang.NullPointerException
在android.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1542)
在android.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1572)
在android.app.Activity.onSaveInstanceState(Activity.java:1164)
在com.MApp.MActivity.onSaveInstanceState(MActivity.java:1111)
在android.app.Activity.performSaveInstanceState(Activity.java:1113)
在android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1188)
在android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3337)
在android.app.ActivityThread.access $ 700(ActivityThread.java:127)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1163)
在android.os.Handler.dispatchMessage(Handler.java:99)
在android.os.Looper.loop(Looper.java:137)
在android.app.ActivityThread.main(ActivityThread.java:4507)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:790)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
在dalvik.system.NativeStart.main(本机方法)
解决方案好吧,我想通了现在。
这是因为我的片段没有的onSaveInstanceState
我曾与虚拟值来填充包。
这是在android系统版本4.0中的一个错误。但是,我不知道其他的版本。Possible Duplicate:
NullPointerException on onSaveInstanceState with AndroidFragmentswhen I call super.onSaveInstanceState I get a NullPointerException at android.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1542) on some devices, some others work.
public void onSaveInstanceState(Bundle savedInstanceState) { //... super.onSaveInstanceState(savedInstanceState); }
With Android 4.1 on a Nexus Tablet its working, on a Samsung with Android 4.0 not. What is the problem here and how can I solve it? Uncommenting onSaveInstanceState works, but I dont think this is correct and it makes my app behave incorrect somewhere else.
Thanks Marvin
edit added stacktrace
FATAL EXCEPTION: main java.lang.NullPointerException at android.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1542) at android.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1572) at android.app.Activity.onSaveInstanceState(Activity.java:1164) at com.MApp.MActivity.onSaveInstanceState(MActivity.java:1111) at android.app.Activity.performSaveInstanceState(Activity.java:1113) at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1188) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3337) at android.app.ActivityThread.access$700(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1163) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4507) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) at dalvik.system.NativeStart.main(Native Method)
解决方案Ok I figured it out now. This is because my fragment had no
onSaveInstanceState
I had to fill the bundle with dummy values. It's a bug in android in version 4.0. However, I don't know about other versions.
这篇关于应用程序崩溃的super.onSaveInstanceState的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!