afollestad/assent

Crash when saving state with Jetpack Navigation components

Open

#11 opened on Mar 24, 2019

 (7 comments) (0 reactions) (0 assignees)Kotlin (55 forks)github user discovery
bughelp wanted

Repository metrics

Stars
 (843 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Library Version:

2.2.3

Affected Device(s):

XIAOMI note 3 android 7.1.2

Describe the Bug:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.foooo.baaar, PID: 29733
    java.lang.IllegalStateException: Failure saving state: active PermissionFragment{b24a4fa} has cleared index: -1
        at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManager.java:2960)
        at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2628)
        at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:2910)
        at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManager.java:2971)
        at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:134)
        at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:591)
        at androidx.appcompat.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:510)
        at android.app.Activity.performSaveInstanceState(Activity.java:1415)
        at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1301)
        at android.app.ActivityThread.callCallActivityOnSaveInstanceState(ActivityThread.java:4597)
        at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3908)
        at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3971)
        at android.app.ActivityThread.-wrap25(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1541)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:153)
        at android.app.ActivityThread.main(ActivityThread.java:6244)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)

To Reproduce:

  1. using jetpack navigation launch fragment
  2. run runWithPermissions(Permission.WRITE_EXTERNAL_STORAGE) { doSomeStuff()}
  3. press home and save state with override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) // Save recycler view state outState.putParcelable("LIST_STATE_KEY", mLayoutManager?.onSaveInstanceState()) }
  4. crash

Expected Behavior: when i press home without doing runWithPermissions(Permission.WRITE_EXTERNAL_STORAGE) { doSomeStuff()} it works fine otherwise it crashes

Contributor guide