Android Studio Build: Android Studio Meerkat Feature Drop | 2024.3.2 Canary 5
Kotlin version: 2.1.10
I do not have yet a repro as I need users to contact me first with details.
But I got a lot of crash with marquee on Android 9 only (Many different devices, Samsung, Huawei, LGE,...)
I'm using basicMarquee(Int.MAX_VALUE) in a couple of components, but those components can be used in many different ways depending on users settings, so hard to know the exact surrounding layout causing this for now.
Fatal Exception: java.lang.IllegalStateException: LayoutNode should be attached to an owner
at androidx.compose.ui.internal.InlineClassHelperKt.throwIllegalStateExceptionForNullCheck(InlineClassHelper.kt:32)
at androidx.compose.ui.node.LayoutNodeKt.requireOwner(LayoutNode.kt:1519)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:74)
at androidx.compose.foundation.MarqueeModifierNode$draw$1$1.invoke(MarqueeModifierNode.java:346)
at androidx.compose.foundation.MarqueeModifierNode$draw$1$1.invoke(MarqueeModifierNode.java:345)
at androidx.compose.ui.node.LayoutNodeDrawScope$record$1.invoke(LayoutNodeDrawScope.kt:168)
at androidx.compose.ui.node.LayoutNodeDrawScope$record$1.invoke(LayoutNodeDrawScope.kt:84)
at androidx.compose.ui.graphics.layer.GraphicsLayer.drawWithChildTracking(AndroidGraphicsLayer.android.kt:443)
at androidx.compose.ui.graphics.layer.GraphicsLayer.access$drawWithChildTracking(AndroidGraphicsLayer.android.kt:56)
at androidx.compose.ui.graphics.layer.GraphicsLayer$clipDrawBlock$1.invoke(GraphicsLayer.java:73)
at androidx.compose.ui.graphics.layer.GraphicsLayer$clipDrawBlock$1.invoke(GraphicsLayer.java:68)
at androidx.compose.ui.graphics.layer.ViewLayer.dispatchDraw(GraphicsViewLayer.android.kt:605)
at android.view.View.draw(View.java:20278)
at android.view.View.updateDisplayListIfDirty(View.java:19150)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4391)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4364)
at android.view.View.updateDisplayListIfDirty(View.java:19110)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3498)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3295)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2652)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1571)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7615)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1034)
at android.view.Choreographer.doCallbacks(Choreographer.java:845)
at android.view.Choreographer.doFrame(Choreographer.java:780)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1020)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:205)
at android.app.ActivityThread.main(ActivityThread.java:6991)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:884)
Description
Jetpack Compose version:Compose 1.8 beta 2
Jetpack Compose component used: Many
Android Studio Build: Android Studio Meerkat Feature Drop | 2024.3.2 Canary 5
Kotlin version: 2.1.10
I do not have yet a repro as I need users to contact me first with details. But I got a lot of crash with marquee on Android 9 only (Many different devices, Samsung, Huawei, LGE,...)
I'm using
basicMarquee(Int.MAX_VALUE)
in a couple of components, but those components can be used in many different ways depending on users settings, so hard to know the exact surrounding layout causing this for now.The marquee code is often used with: