Skip to content

[Crash] Overscroll the BG content #223

Open
@Sagar0-0

Description

@Sagar0-0

Please include:

  1. Library version: version-2.0.5
  2. Device and OS version: Pixel 8 Pro API 34 Emulator
  3. Detailed steps to reproduce the issue
  • Using AndroidView to Use a blurred content in the Compose screen
  • The background content is scrollable (LazyColumn similar to RecyclerView)
  • If we stretch the scrollable content from top it will hit overscroll or it is what I understand.
  • The app crashed because of an error attached below.
  1. XML layout and code for BlurView setup
  • The XML file:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:text="Some text" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:text="Some other text" />
</LinearLayout>
  • Adding this xml as a view in the BlurView programmatically with addViewInLayout method
  1. Stacktrace in case of a crash
java.lang.IllegalArgumentException: Software rendering doesn't support drawRenderNode
                                                                                                    	at android.graphics.Canvas.drawRenderNode(Canvas.java:2329)
                                                                                                    	at androidx.compose.foundation.DrawStretchOverscrollModifier.draw(AndroidOverscroll.android.kt:267)
                                                                                                    	at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:350)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:110)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:89)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:450)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:58)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:469)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:468)
                                                                                                    	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:503)
                                                                                                    	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                                                                                                    	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                                                                                                    	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:468)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:466)
                                                                                                    	at androidx.compose.ui.platform.GraphicsLayerOwnerLayer.drawLayer(GraphicsLayerOwnerLayer.android.kt:271)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:434)
                                                                                                    	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:68)
                                                                                                    	at androidx.compose.foundation.lazy.layout.LazyLayoutItemAnimator$DisplayingDisappearingItemsNode.draw(LazyLayoutItemAnimator.kt:546)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:110)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.performDraw(LayoutNodeDrawScope.kt:78)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:57)
                                                                                                    	at androidx.compose.foundation.DrawStretchOverscrollModifier.draw(AndroidOverscroll.android.kt:156)
                                                                                                    	at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:350)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:110)
                                                                                                    	at androidx.compose.ui.node.LayoutNodeDrawScope.draw-eZhPAX0$ui_release(LayoutNodeDrawScope.kt:89)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:450)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                                                                                                    	at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:280)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:58)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:469)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1$1.invoke(NodeCoordinator.kt:468)
                                                                                                    	at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2441)
                                                                                                    	at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:502)
                                                                                                    	at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:258)
                                                                                                    	at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:468)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator$drawBlock$1.invoke(NodeCoordinator.kt:466)
2024-10-19 12:37:02.305 11182-11182 AndroidRuntime          com.example.zomatoclone              E  	at androidx.compose.ui.platform.GraphicsLayerOwnerLayer.drawLayer(GraphicsLayerOwnerLayer.android.kt:271) (Ask Gemini)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:434)
                                                                                                    	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:1000)
                                                                                                    	at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:196)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:447)
                                                                                                    	at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:439)
                                                                                                    	at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:1000)
                                                                                                    	at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1564)
                                                                                                    	at android.view.View.draw(View.java:23892)
                                                                                                    	at android.view.View.draw(View.java:23762)
                                                                                                    	at android.view.ViewGroup.drawChild(ViewGroup.java:4556)
                                                                                                    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4317)
                                                                                                    	at android.view.View.draw(View.java:23760)
                                                                                                    	at android.view.ViewGroup.drawChild(ViewGroup.java:4556)
                                                                                                    	at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4317)
                                                                                                    	at android.view.View.draw(View.java:23892)
                                                                                                    	at eightbitlab.com.blurview.PreDrawBlurController.updateBlur(PreDrawBlurController.java:120)
                                                                                                    	at eightbitlab.com.blurview.PreDrawBlurController$1.onPreDraw(PreDrawBlurController.java:51)
                                                                                                    	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1176)
                                                                                                    	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3772)
                                                                                                    	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
                                                                                                    	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
                                                                                                    	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
                                                                                                    	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
                                                                                                    	at android.view.Choreographer.doCallbacks(Choreographer.java:952)
                                                                                                    	at android.view.Choreographer.doFrame(Choreographer.java:882)
                                                                                                    	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
                                                                                                    	at android.os.Handler.handleCallback(Handler.java:958)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:205)
                                                                                                    	at android.os.Looper.loop(Looper.java:294)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:8177)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

I am creating this for the sake of creating a Blur Compose Library, Everything works fine, but kust few issue, like this overscroll crash and lags if BG is GIF

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions