Open KUNGERMOoN opened 1 year ago
I found a bug in an ArrayAdapter that has a high probability of being the cause. I couldn't reliably reproduce this so it might not be the only causing condition.
Hi, I can confirm this bug is still present in the newest version of the app. Here's a video of me reproducing the issue on Google Pixel 6
@KUNGERMOoN The stack trace actually only says this is originating from accessibility stuff without further specifics. The one time I managed to replicate this in debug mode some time ago wasn't more informative and usually rare. It doesn't seem to be an error in the app. And seems to be a fairly common unresolved issue with ListViews in StackOverflow. I will hide the views from accessibility as this method appears to be invoked from/for and this seems to be the only possible solution
Thanks!
To reproduce
Stack trace
Java.Lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference
--- End of managed Java.Lang.NullPointerException stack trace --- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference at android.widget.AbsListView.obtainView(AbsListView.java:2431) at android.widget.ListView.measureHeightOfChildren(ListView.java:1423) at android.widget.ListView.onMeasure(ListView.java:1329) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at androidx.appcompat.widget.AlertDialogLayout.tryOnMeasure(AlertDialogLayout.java:134) at androidx.appcompat.widget.AlertDialogLayout.onMeasure(AlertDialogLayout.java:64) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:834) at android.view.View.measure(View.java:25969) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3905) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2620) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2887) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2340) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9057) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1040) at android.view.Choreographer.doCallbacks(Choreographer.java:864) at android.view.Choreographer.doFrame(Choreographer.java:791) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1025) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:255) at android.app.ActivityThread.main(ActivityThread.java:8212) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
--- End of managed Java.Lang.NullPointerException stack trace --- java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getImportantForAccessibility()' on a null object reference at android.widget.AbsListView.obtainView(AbsListView.java:2431) at android.widget.ListView.measureHeightOfChildren(ListView.java:1423) at android.widget.ListView.onMeasure(ListView.java:1329) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at androidx.appcompat.widget.AlertDialogLayout.tryOnMeasure(AlertDialogLayout.java:134) at androidx.appcompat.widget.AlertDialogLayout.onMeasure(AlertDialogLayout.java:64) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25969) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7112) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:834) at android.view.View.measure(View.java:25969) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3905) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2620) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2887) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2340) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9057) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1040) at android.view.Choreographer.doCallbacks(Choreographer.java:864) at android.view.Choreographer.doFrame(Choreographer.java:791) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1025) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:255) at android.app.ActivityThread.main(ActivityThread.java:8212) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)