Good morning, I was trying to publish my app to th...
# compose
a
Good morning, I was trying to publish my app to the play store but I got a pre-launch report with the following crash, any idea what's causing this or how to fix it? it's not pointing to anything in my code
Copy code
Fatal Exception: java.lang.IllegalArgumentException: no paragraph
       at androidx.compose.foundation.text.modifiers.TextStringSimpleNode.draw(TextStringSimpleNode.java:176)
       at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.java:32)
       at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.java:50)
       at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.java:50)
       at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.java:25)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.java:6)
       at androidx.compose.ui.node.NodeCoordinator.O0(NodeCoordinator.java:8)
       at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.java:107)
       at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.java:107)
       at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.java:149)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.java:59)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.a(SnapshotStateObserver.java:48)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.java:66)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.java:1)
       at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.java:28)
       at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.java:28)
       at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.java:24)
       at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.java:40)
       at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.java:22)
       at androidx.compose.ui.node.NodeCoordinator.M0(NodeCoordinator.java:5)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.java:6)
       at androidx.compose.ui.node.NodeCoordinator.O0(NodeCoordinator.java:8)
       at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.java:25)
       at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.java:1)
       at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.java:28)
       at androidx.compose.ui.node.NodeCoordinator.O0(NodeCoordinator.java:8)
       at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.java:25)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.java:6)
       at androidx.compose.ui.node.NodeCoordinator.O0(NodeCoordinator.java:8)
       at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.java:25)
       at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.java:6)
       at androidx.compose.ui.node.NodeCoordinator.O0(NodeCoordinator.java:8)
       at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.java:25)
       at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.java:1)
       at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.java:28)
       at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.java:179)
       at androidx.compose.material.ripple.AndroidRippleIndicationInstance.drawIndication(AndroidRippleIndicationInstance.java:58)
       at androidx.compose.foundation.IndicationModifier.draw(IndicationModifier.java:1)
       at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.java:1)
       at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.java:32)
       at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.java:50)
       at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.java:50)
       at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.java:107)
       at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.java:107)
       at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.java:149)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.java:59)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.a(SnapshotStateObserver.java:48)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.java:66)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.java:1)
       at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.java:28)
       at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.java:28)
       at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.java:24)
       at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.java:40)
       at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.java:66)
       at android.view.View.draw(View.java:22648)
       at android.view.View.updateDisplayListIfDirty(View.java:21520)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4512)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4485)
       at android.view.View.updateDisplayListIfDirty(View.java:21476)
       at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:534)
       at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:540)
       at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:616)
       at android.view.ViewRootImpl.draw(ViewRootImpl.java:4438)
       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4166)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3326)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2143)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8665)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1037)
       at android.view.Choreographer.doCallbacks(Choreographer.java:845)
       at android.view.Choreographer.doFrame(Choreographer.java:780)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
       at android.os.Handler.handleCallback(Handler.java:938)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loopOnce(Looper.java:201)
       at android.os.Looper.loop(Looper.java:288)
       at android.app.ActivityThread.main(ActivityThread.java:7839)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
a
I had the exact same crash when I used
Modifier.basicMarquee()
in a
LazyColumn
item, though I don't know why. Maybe it's the same thing for you?
t
This is a Compose 1.6 A3 crash, should be mostly fixed in A4 or latest snapshot.
👍 2
a
It was the compose version, I was using the multiplatform 1.4 version, I had to use Compose 1.5 on the Android side to fix it, thank you!
s
@Ahmed Mourad How did you figure out it was the multiplatform version? How did you fix this?
a
@Suhaib Roomy It's an internal compose bug that was fixed in alpha4 or 5 of the foundation library i think? other bugs were introduced in those builds tho that occurred much more frequently, so I just decided to live with this one until we get a stable build with the fix
s
I am seeing this issue in compose 1.5.1 and 1.5.2. I am not even using alpha version
a
@Suhaib Roomy Yeah, I'm seeing it quite frequently as well on compose 1.5.11, and it doesn't look like it's fixed yet https://issuetracker.google.com/issues/308501489
265 Views