litecoin-foundation / litewallet-android

Litewallet Android
MIT License
32 stars 12 forks source link

🦟[Bug Report] Crashlytics: BRAnimator.killAllFragments #152

Open kcw-grunt opened 1 year ago

kcw-grunt commented 1 year ago
**Describe the bug** https://console.firebase.google.com/u/0/project/litewallet-beta/crashlytics/app/android:com.loafwallet/issues/1be014faa068db9088fe9d1303cf7219?time=last-twenty-four-hours&sessionEventKey=649AC9C7036800013A12D36E634B62C0_1827774029690809351 **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots or GIFs** If applicable, add screenshots or GIFs to help explain your problem. **Mobile device (please complete the following information):** - Device: [e.g. Pixel 4] - OS: [e.g. Android 25] - Litewallet Version [e.g. v1.19.3] **Additional context** Add any other context about the problem here.
josikie commented 1 year ago

Hello! @kcw-grunt From articles I read, this error will not affects the users experience because Android will avoids Activity state loss and simply thrown the IllegalStateException exception whenever the error occurs.

I can't reproduce the error, I already tried a few times. My guess this error might happened when user pressed back or home button which is triggered the onSaveInstanceState method while our App trying to commit transaction for upcoming fragment.

From the logs on Crashlytics dashboard, it seems the error frequently happened in BreadActivity, IntroActivity, and LoginActivity

Expected behavior The exception for the error is Fatal Exception: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState, this error can be happened because we attempted to commit to FragmentTransaction after the Activity's state had been saved, which is results to Activity state loss. The transaction would not be remembered when we call commit() after onSaveInstanceState() is called, it was never recorded as part of the Activity's state in the first place.

Mobile device (please complete the following information): From the crashlytics informations, in 24 hours, the error affected two users. Their smartphone are Oppo and Oneplus with Android 13 as the OS, they got affected in background state. Litewallet Version: v2.9.0

kcw-grunt commented 1 year ago

@josikie Thanks for looking into this! What I'm thinking is instead of trying to fix the bug (as you said it effects few users) Will you open a PR to add a LWAnalytics test point? So, you can check out these files app/src/main/java/com/breadwallet/tools/manager/AnalyticsManager.java app/src/main/java/com/breadwallet/tools/util/BRConstants.java

Please add a test constant like: public static final String _20230708_EKAF = "error_kill_all_fragments";