应用程序崩溃的super.onSaveInstanceState [英] App crashes on super.onSaveInstanceState

查看:448
本文介绍了应用程序崩溃的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平板电脑的Andr​​oid 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 AndroidFragments

when 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆