I, and at least one other user, have seen this crash. It might be happening when ClassifyFragment is trying to show the AlertDialog about generic network problems, via its warnAboutNetworkProblemWithRetry() method.
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.void checkStateLoss()(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.void throwException(java.lang.RuntimeException)(Unknown Source)
android.support.v4.app.FragmentTransaction beginTransaction()
void putFragment(android.os.Bundle,java.lang.String,android.support.v4.app.Fragment)
android.support.v4.app.Fragment getFragment(android.os.Bundle,java.lang.String)
void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[])
android.view.animation.Animation makeOpenCloseAnimation(android.content.Context,float,float,float,float)
android.view.animation.Animation makeFadeAnimation(android.content.Context,float,float)
android.view.animation.Animation loadAnimation(android.support.v4.app.Fragment,int,boolean,int)
void performPendingDeferredStart(android.support.v4.app.Fragment)
void moveToState(android.support.v4.app.Fragment,int,int,int,boolean)
void moveToState(int,boolean)
void moveToState(int,int,int,boolean)
void addFragment(android.support.v4.app.Fragment,boolean)
void removeFragment(android.support.v4.app.Fragment,int,int)
android.support.v4.app.Fragment findFragmentById(int)
android.support.v4.app.Fragment findFragmentByTag(java.lang.String)
void enqueueAction(java.lang.Runnable,boolean)
int allocBackStackIndex(android.support.v4.app.BackStackRecord)
void setBackStackIndex(int,android.support.v4.app.BackStackRecord)
boolean popBackStackState(android.os.Handler,java.lang.String,int,int)
void restoreAllState(android.os.Parcelable,java.util.ArrayList)
void attachActivity(android.support.v4.app.FragmentActivity,android.support.v4.app.FragmentContainer,android.support.v4.app.Fragment)
void dispatchConfigurationChanged(android.content.res.Configuration)
boolean dispatchCreateOptionsMenu(android.view.Menu,android.view.MenuInflater)
boolean dispatchPrepareOptionsMenu(android.view.Menu)
boolean dispatchOptionsItemSelected(android.view.MenuItem)
at android.support.v4.app.BackStackRecord.void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[])(Unknown Source)
void dump(java.lang.String,java.io.PrintWriter,boolean)
void addOp(android.support.v4.app.BackStackRecord$Op)
android.support.v4.app.FragmentTransaction add(int,android.support.v4.app.Fragment,java.lang.String)
void doAddOp(int,android.support.v4.app.Fragment,java.lang.String,int)
android.support.v4.app.FragmentTransaction replace(int,android.support.v4.app.Fragment)
android.support.v4.app.FragmentTransaction hide(android.support.v4.app.Fragment)
void bumpBackStackNesting(int)
int commit()
int commitInternal(boolean)
void setFirstOut(android.util.SparseArray,android.support.v4.app.Fragment)
void calculateBackFragments(android.util.SparseArray,android.util.SparseArray)
android.support.v4.app.BackStackRecord$TransitionState popFromBackStack(boolean,android.support.v4.app.BackStackRecord$TransitionState,android.util.SparseArray,android.util.SparseArray)
android.support.v4.app.BackStackRecord$TransitionState beginTransition(android.util.SparseArray,android.util.SparseArray,boolean)
java.lang.Object getEnterTransition(android.support.v4.app.Fragment,boolean)
java.lang.Object getSharedElementTransition(android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean)
java.lang.Object captureExitingViews(java.lang.Object,android.support.v4.app.Fragment,java.util.ArrayList,android.support.v4.util.ArrayMap)
android.support.v4.util.ArrayMap remapSharedElements(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,boolean)
boolean configureTransitions(int,android.support.v4.app.BackStackRecord$TransitionState,boolean,android.util.SparseArray,android.util.SparseArray)
void prepareSharedElementTransition(android.support.v4.app.BackStackRecord$TransitionState,android.view.View,java.lang.Object,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,java.util.ArrayList)
void callSharedElementEnd(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,android.support.v4.util.ArrayMap)
void setEpicenterIn(android.support.v4.util.ArrayMap,android.support.v4.app.BackStackRecord$TransitionState)
android.support.v4.util.ArrayMap mapSharedElementsIn(android.support.v4.app.BackStackRecord$TransitionState,boolean,android.support.v4.app.Fragment)
android.support.v4.util.ArrayMap remapNames(java.util.ArrayList,java.util.ArrayList,android.support.v4.util.ArrayMap)
void excludeHiddenFragmentsAfterEnter(android.view.View,android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
void excludeHiddenFragments(android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
void setNameOverride(android.support.v4.util.ArrayMap,java.lang.String,java.lang.String)
void setNameOverrides(android.support.v4.app.BackStackRecord$TransitionState,java.util.ArrayList,java.util.ArrayList)
void setBackNameOverrides(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.util.ArrayMap,boolean)
android.support.v4.util.ArrayMap access$000(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,boolean,android.support.v4.app.Fragment)
void access$100(android.support.v4.app.BackStackRecord,android.support.v4.util.ArrayMap,android.support.v4.app.BackStackRecord$TransitionState)
void access$200(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,android.support.v4.util.ArrayMap)
void access$300(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
at android.support.v4.app.BackStackRecord.void dump(java.lang.String,java.io.FileDescriptor,java.io.PrintWriter,java.lang.String[])(Unknown Source)
void dump(java.lang.String,java.io.PrintWriter,boolean)
void addOp(android.support.v4.app.BackStackRecord$Op)
android.support.v4.app.FragmentTransaction add(int,android.support.v4.app.Fragment,java.lang.String)
void doAddOp(int,android.support.v4.app.Fragment,java.lang.String,int)
android.support.v4.app.FragmentTransaction replace(int,android.support.v4.app.Fragment)
android.support.v4.app.FragmentTransaction hide(android.support.v4.app.Fragment)
void bumpBackStackNesting(int)
int commit()
int commitInternal(boolean)
void setFirstOut(android.util.SparseArray,android.support.v4.app.Fragment)
void calculateBackFragments(android.util.SparseArray,android.util.SparseArray)
android.support.v4.app.BackStackRecord$TransitionState popFromBackStack(boolean,android.support.v4.app.BackStackRecord$TransitionState,android.util.SparseArray,android.util.SparseArray)
android.support.v4.app.BackStackRecord$TransitionState beginTransition(android.util.SparseArray,android.util.SparseArray,boolean)
java.lang.Object getEnterTransition(android.support.v4.app.Fragment,boolean)
java.lang.Object getSharedElementTransition(android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean)
java.lang.Object captureExitingViews(java.lang.Object,android.support.v4.app.Fragment,java.util.ArrayList,android.support.v4.util.ArrayMap)
android.support.v4.util.ArrayMap remapSharedElements(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,boolean)
boolean configureTransitions(int,android.support.v4.app.BackStackRecord$TransitionState,boolean,android.util.SparseArray,android.util.SparseArray)
void prepareSharedElementTransition(android.support.v4.app.BackStackRecord$TransitionState,android.view.View,java.lang.Object,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,java.util.ArrayList)
void callSharedElementEnd(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,android.support.v4.util.ArrayMap)
void setEpicenterIn(android.support.v4.util.ArrayMap,android.support.v4.app.BackStackRecord$TransitionState)
android.support.v4.util.ArrayMap mapSharedElementsIn(android.support.v4.app.BackStackRecord$TransitionState,boolean,android.support.v4.app.Fragment)
android.support.v4.util.ArrayMap remapNames(java.util.ArrayList,java.util.ArrayList,android.support.v4.util.ArrayMap)
void excludeHiddenFragmentsAfterEnter(android.view.View,android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
void excludeHiddenFragments(android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
void setNameOverride(android.support.v4.util.ArrayMap,java.lang.String,java.lang.String)
void setNameOverrides(android.support.v4.app.BackStackRecord$TransitionState,java.util.ArrayList,java.util.ArrayList)
void setBackNameOverrides(android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.util.ArrayMap,boolean)
android.support.v4.util.ArrayMap access$000(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,boolean,android.support.v4.app.Fragment)
void access$100(android.support.v4.app.BackStackRecord,android.support.v4.util.ArrayMap,android.support.v4.app.BackStackRecord$TransitionState)
void access$200(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,android.support.v4.app.Fragment,android.support.v4.app.Fragment,boolean,android.support.v4.util.ArrayMap)
void access$300(android.support.v4.app.BackStackRecord,android.support.v4.app.BackStackRecord$TransitionState,int,java.lang.Object)
at com.murrayc.galaxyzoo.app.ClassifyFragment.void showChildFragments(boolean)(Unknown Source)
at com.murrayc.galaxyzoo.app.ClassifyFragment.void showLoadingInProgress(boolean)(Unknown Source)
at com.murrayc.galaxyzoo.app.ClassifyFragment.void warnAboutNetworkProblemWithRetry(android.app.Activity,java.lang.String)(Unknown Source)
android.view.View onCreateView(android.view.LayoutInflater,android.view.ViewGroup,android.os.Bundle)
void onCreateOptionsMenu(android.view.Menu,android.view.MenuInflater)
android.support.v4.content.Loader onCreateLoader(int,android.os.Bundle)
void onLoadFinished(android.support.v4.content.Loader,android.database.Cursor)
void onLoaderReset(android.support.v4.content.Loader)
void onLoadFinished(android.support.v4.content.Loader,java.lang.Object)
void access$000(com.murrayc.galaxyzoo.app.ClassifyFragment)
android.app.AlertDialog access$102(com.murrayc.galaxyzoo.app.ClassifyFragment,android.app.AlertDialog)
at android.support.v4.app.LoaderManagerImpl.android.support.v4.app.LoaderManagerImpl$LoaderInfo createLoader(int,android.os.Bundle,android.support.v4.app.LoaderManager$LoaderCallbacks)(Unknown Source)
void doStop()
at android.support.v4.app.LoaderManagerImpl.android.support.v4.app.LoaderManagerImpl$LoaderInfo createAndInstallLoader(int,android.os.Bundle,android.support.v4.app.LoaderManager$LoaderCallbacks)(Unknown Source)
void doRetain()
at android.support.v4.app.LoaderManagerImpl.android.support.v4.content.Loader restartLoader(int,android.os.Bundle,android.support.v4.app.LoaderManager$LoaderCallbacks)(Unknown Source)
void doStart()
at com.murrayc.galaxyzoo.app.ClassifyFragment.void update()(Unknown Source)
at com.murrayc.galaxyzoo.app.ClassifyActivity.void startNextClassification()(Unknown Source)
at com.murrayc.galaxyzoo.app.ClassifyActivity.void onClassificationFinished()(Unknown Source)
at com.murrayc.galaxyzoo.app.QuestionFragment$SaveClassificationTask.java.lang.Void doInBackground(java.lang.Void[])(Unknown Source)
void onPostExecute(java.lang.Void)
at com.murrayc.galaxyzoo.app.QuestionFragment$SaveClassificationTask.void onPostExecute(java.lang.Object)(Unknown Source)
at android.os.AsyncTask.finish(AsyncTask.java:602)
at android.os.AsyncTask.access$600(AsyncTask.java:156)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
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:978)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)
at dalvik.system.NativeStart.main(Native Method)