Hello everyone,

Some time ago, I updated my application to use the support v4 library in 
order to use the ViewPager control. The initial version of the application 
used the FragmentPagerAdapter, however, because the application has a lot 
of pages it seemed wise to use the FragmentStatePagerAdapter, since I was 
getting OutOfMemory reports. But now, I am getting reports of another 
error. The error is:  java.lang.IllegalStateException: Fragment 
<MyFragment> is not currently in the FragmentManager.
I did some searching on the Internet, but nothing solid came up. The 
problem seems to be happening when the activity is trying to pause and the 
onSaveInstanceState method is called. After I did some investigation on the 
support v4 library my self, I noticed that this exception is thrown in the 
FragmentManager.putFragment() when the member of the fragment mIndex is 
less than 0, but I cannot figure out when mIndex becomes less than 0 and 
why this is not handled correctly.

*I would like to point out that I do not have an MOR (method of 
reproduction) for this error.*

Here is the call stack:
java.lang.RuntimeException: Unable to pause activity  <my activity with the 
ViewPager> java.lang.IllegalStateException: Fragment <MyFragment> is not 
currently in the FragmentManager
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3438)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3395)
at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3378)
at android.app.ActivityThread.access$2700(ActivityThread.java:129)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2124)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4717)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Fragment <MyFragment> is not 
currently in the FragmentManager
at 
android.support.v4.app.FragmentManagerImpl.putFragment(FragmentManager.java:516)
at 
android.support.v4.app.FragmentStatePagerAdapter.saveState(FragmentStatePagerAdapter.java:185)
at android.support.v4.view.ViewPager.onSaveInstanceState(ViewPager.java:881)
at android.view.View.dispatchSaveInstanceState(View.java:6098)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1323)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1327)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1327)
at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1327)
at android.view.View.saveHierarchyState(View.java:6081)
at 
com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1573)
at android.app.Activity.onSaveInstanceState(Activity.java:1094)
at 
android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:480)
 at <my activity with the 
ViewPager>.onSaveInstanceState(ContentActivity.java:288)
at android.app.Activity.performSaveInstanceState(Activity.java:1044)
at 
android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1180)
at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3420)

Thanks in advanced.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to