SmartPack / PackageManager

Source code of Package Manager, an Application to Manage your Apps.
https://smartpack.github.io/PackageManager/
GNU General Public License v3.0
436 stars 58 forks source link

Search in Apps Tab Crashes the App when high no. of user apps installed #86

Open ShareASmile opened 2 years ago

ShareASmile commented 2 years ago

Search in Apps Tab Crashes the App. Issue is reproducible on low spec phones having many apps installed when searching apps from All Apps or User Apps Tab. I have currently 70 user apps installed.

More info:- Device: Samsung J210F android 6 App Version: v6.3 (Problem Worsened on v6.4 (fdroid)

Steps to reproduce: Start search in Apps Tab, keyboard opens, start typing quickly after putting 3-4 letters app hangs & crashes few seconds after giving below crash report:-

java.lang.IndexOutOfBoundsException: Invalid index 2, size is 2 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) at java.util.ArrayList.get(ArrayList.java:308) at w1.e.d(:1) at androidx.recyclerview.widget.RecyclerView$s.j(:84) at androidx.recyclerview.widget.LinearLayoutManager$c.c(:3) at androidx.recyclerview.widget.LinearLayoutManager.e1() at androidx.recyclerview.widget.LinearLayoutManager.P0(:2) at androidx.recyclerview.widget.LinearLayoutManager.i0(:20) at androidx.recyclerview.widget.RecyclerView.s() at androidx.recyclerview.widget.RecyclerView.onMeasure(:2) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:747) at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) at android.view.View.measure(View.java:20221) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:20221) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure() at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:747) at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) at android.widget.LinearLayout.measureVertical(LinearLayout.java:747) at android.widget.LinearLayout.onMeasure(LinearLayout.java:629) at android.view.View.measure(View.java:20221) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6333) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:3137) at android.view.View.measure(View.java:20221) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2687) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1640) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1932) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1528) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7530) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:622) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7325) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

sunilpaulmathew commented 2 years ago

@ShareASmile Thanks, but really strange. Working pretty much decent in my end. & out of curiosity, how many users apps do you have (I mean, is it too low or too high).

ShareASmile commented 2 years ago

I test many apps by installing debug builds side by side, so can be said that user apps on my device currently are too high around 70.

Since v6.2 app has become sluggish again, earlier too v4.8 had simlar problems, crashes during search & slow in Ui with long opening time but in v5.x upto 6.1 app was loading bit faster & was crashing less often during search, No. of apps installed was roughly the same. On low end devices having old hardware or having low RAM this issue can be reliably reproduced.

I will test the app also on android 10 Samsung A50s 4GB Ram & revert back with my findings.

NikunjKhangwal commented 10 months ago

+1 Same issue here. It work fine when i scroll through apps but search instantly crash the app.