应用程序崩溃onPause

时间:2013-09-17 09:59:18

标签: android android-fragments crash

我做了一个音板应用程序。我正在使用SherlockActionBar作为片段。当我滑动到另一个片段而不是按下主页按钮时,我的应用程序崩溃了。

我不会覆盖onSaveInstanceStateonPauseonDestroy等。

即使我删除了所有片段内容,问题仍然存在

My Log:

09-16 19:33:57.030: E/AndroidRuntime(32080): FATAL EXCEPTION: main
09-16 19:33:57.030: E/AndroidRuntime(32080): java.lang.RuntimeException: Unable to pause activity {com.mega.sb/com.mega.sb.MainActivity}: java.lang.NullPointerException
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2879)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2835)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2813)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.access$800(ActivityThread.java:140)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.os.Looper.loop(Looper.java:137)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.main(ActivityThread.java:4898)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at java.lang.reflect.Method.invokeNative(Native Method)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at java.lang.reflect.Method.invoke(Method.java:511)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at dalvik.system.NativeStart.main(Native Method)
09-16 19:33:57.030: E/AndroidRuntime(32080): Caused by: java.lang.NullPointerException
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:126)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.Activity.performSaveInstanceState(Activity.java:1181)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1219)
09-16 19:33:57.030: E/AndroidRuntime(32080):    at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2861)
09-16 19:33:57.030: E/AndroidRuntime(32080):    ... 12 more

提前致谢!

2 个答案:

答案 0 :(得分:2)

FragmentPagerAdapter更改为FragmentStatePagerAdapter应该可以解决问题!

答案 1 :(得分:0)

尝试此解决方法:

@Override
public void onSaveInstanceState(Bundle outState) 
{
    outState.putString("your_key", "your_value");           
    super.onSaveInstanceState(outState);
}

它有各种各样的错误(或许不是)。但是尝试以上对于所有片段,覆盖上面给出的onSaveInstanceState()

你的lib还可以反驳的另一件事是你必须为android-support-v4.jar使用相同的库(你的项目和SherlockActionBar库)