Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IllegalStateException - Fragment support library

I have a serious problem with my App continously crashing on some users devices with the following exception in an Activity onStart method:

Caused by: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1299)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1310)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:541)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:525)
at android.support.v4.app.DialogFragment.show(DialogFragment.java:123) 

I cannot reproduce this error locally in my emulator. I have found a few questions regarding this issue on stackoverflow: here and here

I have tried the suggested solution, i.e. do not allow empty bundles in onSaveInstance neither in fragments nor activities.

However the problem remains. This is the only Crash report I ever get, and I get it continously.

Does anyone have a working solution?

like image 739
phlebas Avatar asked Aug 10 '12 11:08

phlebas


1 Answers

I have solved this issue by

  • upgrading my support lib to revision 10
  • using workaround posted here: http://code.google.com/p/android/issues/detail?id=23096 i.e.. Add a non-ui fragment in onResumeFragments and invoke further transactions in Listener Callback.

Check my answer here for code: "Can not perform this action after onSaveInstanceState" - why am I getting this exception from my activity's onResume method?

Got no more IllegalStateException so far.

like image 164
phlebas Avatar answered Oct 21 '22 02:10

phlebas