I have a Kotlin android app, that has a big scroll view with a bunch of dynamically loaded images laying on the scroll view (also an admob ads). The goal is to have a scrollable as well as pinch-and-zoomable list of images.
Some users (not many, but hundreds) are experiencing the following crash:
Exception java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild (ViewGroup.java:6405)
at android.view.ViewGroup.offsetDescendantRectToMyCoords (ViewGroup.java:6330)
at android.widget.ScrollView.isWithinDeltaOfScreen (ScrollView.java:1315)
at android.widget.ScrollView.onSizeChanged (ScrollView.java:1730)
at android.view.View.sizeChange (View.java:23918)
at android.view.View.setFrame (View.java:23870)
at android.view.View.layout (View.java:23717)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at androidx.constraintlayout.widget.ConstraintLayout.onLayout (ConstraintLayout.java:1915)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1582)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829)
at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673)
at android.widget.LinearLayout.onLayout (LinearLayout.java:1582)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332)
at android.widget.FrameLayout.onLayout (FrameLayout.java:270)
at com.android.internal.policy.DecorView.onLayout (DecorView.java:866)
at android.view.View.layout (View.java:23722)
at android.view.ViewGroup.layout (ViewGroup.java:6522)
at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:4048)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:3467)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:2384)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:9362)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1168)
at android.view.Choreographer.doCallbacks (Choreographer.java:920)
at android.view.Choreographer.doFrame (Choreographer.java:835)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1150)
at android.os.Handler.handleCallback (Handler.java:938)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loopOnce (Looper.java:210)
at android.os.Looper.loop (Looper.java:299)
at android.app.ActivityThread.main (ActivityThread.java:8290)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:577)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1073)
I found a related question on this but the thread is largely talking about textfield focus, while my app does not even have any text field.
I can't reproduce the issue regardless of what I try. Anyone has a clue of what could be causing the problem and how I may reproduce this, and solve this?