bluelinelabs / bluelinelabs/Conductor

"Can not perform this action after onSaveInstanceState" on attachRouter

Open
#519 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.9k
Forks
338
PR merge metrics
No merged PRs in 30d

Description

From a crash report in our production app:

```
android.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1858)
android.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1881)
android.app.BackStackRecord.commitInternal (BackStackRecord.java:688)
android.app.BackStackRecord.commit (BackStackRecord.java:646)
com.bluelinelabs.conductor.internal.LifecycleHandler.install (LifecycleHandler.java:74)
com.bluelinelabs.conductor.Conductor.attachRouter (Conductor.java:36)
```

Conductor 2.1.5
Android 8.1.0
Device: WIKO W_K300

This seems to happen at app startup, from ```onCreate``` on that line

```
mActivityRouter = Conductor.attachRouter(this, mViewGroupContainer, poSavedInstanceState);
```

Contributor guide

Open the contributing guide

Research direction

Start at Conductor.attachRouter and follow the reported stack into LifecycleHandler.install, then compare that path with the Activity.onCreate call shown in the report and its saved-instance-state argument. Reproduce the startup sequence if possible and determine the conditions that cause the FragmentManager state-loss exception; done means the reported attachRouter startup path no longer crashes, with the behavior verified on a relevant Android environment.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.