0

I've made a soundboard application. I'm using SherlockActionBar for fragments. When I swipe to another fragment and than press the home button my application crashes.

I'm not overriding onSaveInstanceState, onPause, onDestroy, etc.

The problem still exists even if I delete all my fragment content

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

Thanks in advance!

Ben Weiss
  • 17,182
  • 6
  • 67
  • 87
Henkie
  • 11
  • 3

2 Answers2

2

changing the FragmentPagerAdapter to FragmentStatePagerAdapter should do the trick!

Wannabe
  • 727
  • 1
  • 6
  • 21
0

Try this workaround :

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

Its a bug of sorts (or maybe not). But try the above For all fragments, override the onSaveInstanceState() as given above

One more thing your libs also can contradict so you have to use same libs for android-support-v4.jar for both (your project and for SherlockActionBar Library)

Harish Godara
  • 2,388
  • 1
  • 14
  • 28