TeamAmaze / TeamAmaze/AmazeFileManager
`IllegalStateException`: Can not perform this action after `onSaveInstanceState` on `BasePrefsFragment#onFolderChooserDismissed`
Open
Nobody has claimed this yet.
From-Email
Issue-Bug
Issue-Easy (good first issue)
- Dominant language
- Kotlin
- Stars
- 6.4k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 1
Description
Issue explanation (write below this line)
Exception
- App Name: Amaze File Manager
- Package: com.amaze.filemanager
- Version: 3.8.4
- User Action: UI Error
- Request: Application crash
- OS: Linux
samsung/j3topeltetfnvzw/j3topeltetfnvzw:9/PPR1.180610.011/S367VLUDU4BSG3:user/release-keys
9 - 28 - Device: j3topeltetfnvzw
- Model: SM-S367VL
- Product: j3topeltetfnvzw
Crash log
java.lang.RuntimeException: Unable to destroy activity
{com.amaze.filemanager/com.amaze.filemanager.ui.activities.PreferencesActivity}:
java.lang.IllegalStateException: Can not perform this action after
onSaveInstanceState
at
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4741)
at
android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4764)
at
android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:39)
at
android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1970)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7156)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: java.lang.IllegalStateException: Can not perform this action
after onSaveInstanceState
at
androidx.fragment.app.FragmentManager.checkStateLoss(FragmentManager.java:1551)
at
androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1591)
at
androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:341)
at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:306)
at
androidx.fragment.app.DialogFragment.dismissInternal(DialogFragment.java:358)
at androidx.fragment.app.DialogFragment.dismiss(DialogFragment.java:309)
at
com.amaze.filemanager.ui.fragments.preferencefragments.BasePrefsFragment.onFolderChooserDismissed(BasePrefsFragment.kt:45)
at
com.amaze.filemanager.ui.activities.PreferencesActivity.onFolderChooserDismissed(PreferencesActivity.kt:176)
at
com.afollestad.materialdialogs.folderselector.FolderChooserDialog.onDismiss(FolderChooserDialog.java:142)
at
androidx.fragment.app.DialogFragment.onDestroyView(DialogFragment.java:774)
at androidx.fragment.app.Fragment.performDestroyView(Fragment.java:3232)
at
androidx.fragment.app.FragmentStateManager.destroyFragmentView(FragmentStateManager.java:744)
at
androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:327)
at
androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:113)
at
androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1374)
at
androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2841)
at
androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2820)
at
androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:345)
at
androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:306)
at
androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:278)
at android.app.Activity.performDestroy(Activity.java:7719)
at
android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1310)
at
android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4726)
... 11 more
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with BasePrefsFragment.kt at line 45 and PreferencesActivity.kt at line 176, then trace the folder chooser dismissal during activity teardown. Reproduce the Android lifecycle sequence from the crash log and verify that dismissing the chooser after state saving no longer crashes while destroying PreferencesActivity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100