tachiyomi
tachiyomi copied to clipboard
LazyColumn lag/crash with longer lists of contents
Steps to reproduce
This is probably more reproducible on lower end devices.
Based on log reports, this has occurred in, from highest to lowest frequency:
- Extensions list
- Sources list
- Updates list
- Chapters list
Expected behavior
Render without crashing.
Actual behavior
Compose crashes due to duplicate item keys.
Crash logs
Example from #8509:
11-10 00:34:33.615 20056 20056 E AndroidRuntime: java.lang.IllegalArgumentException: Key extensionHeader-2131886391 was already used. If you are using LazyColumn/Row please make sure you provide a unique key for each item.
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose(SubcomposeLayout.kt:25)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope.subcompose(SubcomposeLayout.kt:8)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw(LazyLayoutMeasureScope.kt:40)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.foundation.lazy.LazyMeasuredItemProvider.getAndMeasure-ZjPyQlc(LazyMeasuredItemProvider.kt:11)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.foundation.lazy.LazyListMeasureKt.measureLazyList-nXYdgZc(LazyListMeasure.kt:16)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.foundation.lazy.LazyListKt$rememberLazyListMeasurePolicy$1$1.invoke(LazyList.kt:445)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$1$2$1.invoke(LazyLayout.kt:27)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s(SubcomposeLayout.kt:68)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:57)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s(GraphicsLayerModifier.kt:11)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.BackwardsCompatNode.measure-3p2s80s(BackwardsCompatNode.kt:20)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:10)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasure$2.invoke(LayoutNodeLayoutDelegate.kt:9)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:66)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.runtime.snapshots.SnapshotStateObserver$observeReads$1$1.invoke(SnapshotStateObserver.kt:9)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:48)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations(Unknown Source:1)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:92)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:19)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:18)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:34)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:125)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:191)
11-10 00:34:33.615 20056 20056 E AndroidRuntime: at eu.kanade.presentation.components.VerticalFastScrollerKt$VerticalFastScroller$2$1.invoke(VerticalFastScroller.kt:53)
...
Tachiyomi version
0.14.3
Android version
N/A
Device
N/A
Other details
No response
Acknowledgements
- [X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
- [X] I have written a short but informative title.
- [X] If this is an issue with an extension, I should be opening an issue in the extensions repository.
- [X] I have tried the troubleshooting guide.
- [X] I have updated the app to version 0.14.3.
- [X] I have updated all installed extensions.
- [X] I will fill out all of the requested information in this form.