Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StringIndexOutOfBoundsException when setting truncateOnTextOverflow = true #134

Open
RoxasKH opened this issue Nov 8, 2024 · 1 comment

Comments

@RoxasKH
Copy link

RoxasKH commented Nov 8, 2024

Setting truncateOnTextOverflow = true on a MarkdownText composable causes the following exception, making the app crash.
I just need a way to add hyphen when the text goes iver the maximum number of lines, just like we do on the normal Text() composable.

This is how i'm using the composable:

MarkdownText(
    markdown = description,
    fontResource = R.font.montserrat_regular,
    style = Theme.typography.body.regular
        .merge(Theme.colors.text.body),
    maxLines = 2,
    truncateOnTextOverflow = true
)

Exception:

FATAL EXCEPTION: main
	Process: com.example.example.dev, PID: 29656
	java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 106
		at java.lang.String.checkBoundsBeginEnd(String.java:4466)
		at java.lang.String.substring(String.java:2517)
		at android.text.SpannableStringInternal.<init>(SpannableStringInternal.java:37)
		at android.text.SpannableString.<init>(SpannableString.java:48)
		at android.text.SpannableString.subSequence(SpannableString.java:68)
		at dev.jeziellago.compose.markdowntext.TextAppearanceExtKt$enableTextOverflow$$inlined$doOnNextLayout$1.onLayoutChange(View.kt:417)
		at android.view.View.layout(View.java:24442)
		at androidx.compose.ui.viewinterop.AndroidViewHolder.onLayout(AndroidViewHolder.android.kt:261)
		at android.view.View.layout(View.java:24421)
		at android.view.ViewGroup.layout(ViewGroup.java:6440)
		at androidx.compose.ui.viewinterop.AndroidViewHolder_androidKt.layoutAccordingTo(AndroidViewHolder.android.kt:603)
		at androidx.compose.ui.viewinterop.AndroidViewHolder_androidKt.access$layoutAccordingTo(AndroidViewHolder.android.kt:1)
		at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$5$measure$2.invoke(AndroidViewHolder.android.kt:415)
		at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$5$measure$2.invoke(AndroidViewHolder.android.kt:414)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:162)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:153)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative(Placeable.kt:609)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative$default(Placeable.kt:232)
		at androidx.compose.foundation.layout.PaddingNode$measure$1.invoke(Padding.kt:420)
		at androidx.compose.foundation.layout.PaddingNode$measure$1.invoke(Padding.kt:418)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.foundation.layout.RowMeasurePolicy$placeHelper$1$1.invoke(Row.kt:197)
		at androidx.compose.foundation.layout.RowMeasurePolicy$placeHelper$1$1.invoke(Row.kt:189)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative(Placeable.kt:609)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative$default(Placeable.kt:232)
		at androidx.compose.foundation.layout.SizeNode$measure$1.invoke(Size.kt:840)
		at androidx.compose.foundation.layout.SizeNode$measure$1.invoke(Size.kt:839)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer(Placeable.kt:646)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer$default(Placeable.kt:327)
		at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:648)
		at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:647)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer(Placeable.kt:646)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer$default(Placeable.kt:327)
		at androidx.compose.ui.graphics.BlockGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:580)
		at androidx.compose.ui.graphics.BlockGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:579)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:259)
		at androidx.compose.foundation.layout.BoxKt.placeInBox(Box.kt:223)
		at androidx.compose.foundation.layout.BoxKt.access$placeInBox(Box.kt:1)
		at androidx.compose.foundation.layout.BoxMeasurePolicy$measure$2.invoke(Box.kt:162)
		at androidx.compose.foundation.layout.BoxMeasurePolicy$measure$2.invoke(Box.kt:161)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:162)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:153)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative(Placeable.kt:609)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative$default(Placeable.kt:232)
		at androidx.compose.foundation.layout.PaddingNode$measure$1.invoke(Padding.kt:420)
		at androidx.compose.foundation.layout.PaddingNode$measure$1.invoke(Padding.kt:418)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:162)
		at androidx.compose.foundation.layout.ColumnMeasurePolicy$placeHelper$1$1.invoke(Column.kt:153)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelativeWithLayer(Placeable.kt:637)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelativeWithLayer$default(Placeable.kt:305)
		at androidx.compose.foundation.ScrollingLayoutNode$measure$1$1.invoke(Scroll.kt:438)
		at androidx.compose.foundation.ScrollingLayoutNode$measure$1$1.invoke(Scroll.kt:437)
		at androidx.compose.ui.layout.Placeable$PlacementScope.withMotionFrameOfReferencePlacement(Placeable.kt:520)
		at androidx.compose.foundation.ScrollingLayoutNode$measure$1.invoke(Scroll.kt:437)
		at androidx.compose.foundation.ScrollingLayoutNode$measure$1.invoke(Scroll.kt:428)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer(Placeable.kt:646)
		at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer$default(Placeable.kt:327)
		at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:648)
		at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:647)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.foundation.layout.PaddingValuesModifier$measure$2.invoke(Padding.kt:477)
		at androidx.compose.foundation.layout.PaddingValuesModifier$measure$2.invoke(Padding.kt:476)
		at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:223)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.onAfterPlaceAt(LayoutModifierNodeCoordinator.kt:270)
		at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:247)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate.kt:839)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:765)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:618)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:246)
		at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1$1.invoke(Scaffold.kt:268)
		at androidx.compose.material3.ScaffoldKt$ScaffoldLayout$1$1$1.invoke(Scaffold.kt:265)
		at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope$layout$1.placeChildren(SubcomposeLayout.kt:923)
		at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$2.placeChildren(SubcomposeLayout.kt:1015)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:429)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:424)
		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.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:83)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.layoutChildren(LayoutNodeLayoutDelegate.kt:457)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:627)
		at androidx.compose.ui.node.InnerNodeCoordinator.onAfterPlaceAt(InnerNodeCoordinator.kt:182)
		at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:169)
		at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:35)
		at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:621)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:565)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$placeOuterCoordinatorBlock$1.invoke(LayoutNodeLayoutDelegate.kt:552)
		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.OwnerSnapshotObserver.observeLayoutModifierSnapshotReads$ui_release(OwnerSnapshotObserver.kt:98)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-MLgxB_4(LayoutNodeLayoutDelegate.kt:871)
		at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.replace(LayoutNodeLayoutDelegate.kt:889)
		at androidx.compose.ui.node.LayoutNode.replace$ui_release(LayoutNode.kt:987)
		at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:576)
		at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded$default(MeasureAndLayoutDelegate.kt:534)
		at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:390)
		at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:1273)
		at androidx.compose.ui.node.Owner.measureAndLayout$default(Owner.kt:248)
		at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1561)
		at android.view.View.draw(View.java:23892)
		at android.view.View.updateDisplayListIfDirty(View.java:22756)
		at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
		at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
		at android.view.View.updateDisplayListIfDirty(View.java:22712)
		at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
		at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
		at android.view.View.updateDisplayListIfDirty(View.java:22712)
		at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
		at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
		at android.view.View.updateDisplayListIfDirty(View.java:22712)
		at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
		at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
		at android.view.View.updateDisplayListIfDirty(View.java:22712)
		at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
		at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
		at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
		at android.view.ViewRootImpl.draw(ViewRootImpl.java:4939)
		at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4643)
		at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3822)
		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)
@TinaT2
Copy link

TinaT2 commented Dec 17, 2024

image
@RoxasKH It's working fine here. How should I change my code to face this crash?

        item {
                MarkdownText(
                    markdown = """
                        Here we have 4 lines:
                        - [x] Review #123
                        - [ ] Complete XYZ
                        - [ ] Add delight to the experience when all tasks are complete :tada:
                """.trimIndent(),
                    maxLines = 2,
                    truncateOnTextOverflow = true
                )
            }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants