java.lang.IllegalArgumentException: 无法舍入 NaN 值
java.lang.IllegalArgumentException: Cannot round NaN value
我正在开发 Jetpack Compose 应用程序,我认为 Slider 导致错误 java.lang.IllegalArgumentException: Cannot round NaN value
导致我的应用程序崩溃。
但是,它没有给我任何关于它发生的位置或原因的提示,除此之外它似乎可能与 Box 可组合项有关。此外,如果我从我的视图中删除 Slider
,它看起来并没有发生,所以它似乎是因为这个 Composable.
滑块会定期更新并从外部确定的因素中获取值。
是否有明显的错误,或者我可以做些什么来调试或识别问题?
我的库版本是:
androidx-activity = "1.4.0"
androidx-appcompat="1.4.0"
androidxAnnotation="1.2.0"
androidx-core="1.7.0"
compose="1.1.1"
这是我的代码
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
viewModel: MyViewModel? = hiltViewModel<MyViewModel>()
) {
LaunchedEffect(true) {
viewModel.init()
}
Box(modifier = modifier.fillMaxSize()) {
Column(
modifier = Modifier
.fillMaxWidth()
.align(Alignment.BottomCenter)
.padding(bottom = 20.dp)
.padding(horizontal = 20.dp)
) {
Slider(
modifier = Modifier.fillMaxWidth(),
value = viewModel.sliderPosition,
onValueChange = viewModel::onSliderValueChange
)
}
}
}
}
@HiltViewModel
class MyViewModel {
var sliderPosition: Float by mutableStateOf(0f)
fun onSliderValueChange(value: Float) {
sliderPosition = value
}
private fun tickerFlow(period: Duration, initialDelay: Duration = Duration.ZERO) = flow {
delay(initialDelay)
while (true) {
emit(Unit)
delay(period)
}
}
fun init() {
tickerFlow(period = .1.seconds, initialDelay = 0.seconds)
.onEach {
sliderPosition = getExternallyDeterminedSliderPositionValue()
}
.launchIn(viewModelScope)
}
}
错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mycompany.app.android, PID: 29210
java.lang.IllegalArgumentException: Cannot round NaN value.
at kotlin.math.MathKt__MathJVMKt.roundToInt(MathJVM.kt:1132)
at androidx.compose.ui.unit.Density$DefaultImpls.roundToPx-0680j_4(Density.kt:73)
at androidx.compose.ui.layout.IntrinsicMeasureScope$DefaultImpls.roundToPx-0680j_4(IntrinsicMeasureScope.kt:25)
at androidx.compose.ui.layout.MeasureScope$DefaultImpls.roundToPx-0680j_4(MeasureScope.kt:25)
at androidx.compose.ui.node.LayoutNode$measureScope.roundToPx-0680j_4(LayoutNode.kt:493)
at androidx.compose.foundation.layout.PaddingModifier.measure-3p2s80s(Padding.kt:361)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:271)
at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:670)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:118)
at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy.measure-3p2s80s(Box.kt:115)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke-0kLqBqw(BoxWithConstraints.kt:67)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke(BoxWithConstraints.kt:64)
at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy.measure-3p2s80s(SubcomposeLayout.kt:355)
at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.606 29210-29210/com.mycompany.app.android E/AndroidRuntime: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.foundation.layout.SizeModifier.measure-3p2s80s(Size.kt:781)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.material.MinimumTouchTargetModifier.measure-3p2s80s(TouchTarget.kt:74)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:846)
at android.view.View.draw(View.java:21884)
at android.view.View.updateDisplayListIfDirty(View.java:20754)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:725)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:731)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:840)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3944)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3718)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3026)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1885)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8508)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
2022-03-31 10:27:00.606 29210-29210/com.mycompany.app.android E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:696)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: java.lang.IllegalArgumentException: Cannot round NaN value.
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at kotlin.math.MathKt__MathJVMKt.roundToInt(MathJVM.kt:1132)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.unit.Density$DefaultImpls.roundToPx-0680j_4(Density.kt:73)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.IntrinsicMeasureScope$DefaultImpls.roundToPx-0680j_4(IntrinsicMeasureScope.kt:25)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.MeasureScope$DefaultImpls.roundToPx-0680j_4(MeasureScope.kt:25)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode$measureScope.roundToPx-0680j_4(LayoutNode.kt:493)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.PaddingModifier.measure-3p2s80s(Padding.kt:361)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:271)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:670)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:118)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy.measure-3p2s80s(Box.kt:115)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke-0kLqBqw(BoxWithConstraints.kt:67)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke(BoxWithConstraints.kt:64)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy.measure-3p2s80s(SubcomposeLayout.kt:355)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.SizeModifier.measure-3p2s80s(Size.kt:781)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.material.MinimumTouchTargetModifier.measure-3p2s80s(TouchTarget.kt:74)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:846)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.draw(View.java:21884)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20754)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:725)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:731)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:840)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.draw(ViewRootImpl.java:3944)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3718)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3026)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1885)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8508)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer.doCallbacks(Choreographer.java:761)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer.doFrame(Choreographer.java:696)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Handler.handleCallback(Handler.java:873)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Handler.dispatchMessage(Handler.java:99)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Looper.loop(Looper.java:214)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.app.ActivityThread.main(ActivityThread.java:7050)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at java.lang.reflect.Method.invoke(Native Method)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
解决方案是我没有意识到 Floats 可以是 NaN,而 getExternallyDeterminedSliderPositionValue
函数返回了一个 NaN 值。
我正在开发 Jetpack Compose 应用程序,我认为 Slider 导致错误 java.lang.IllegalArgumentException: Cannot round NaN value
导致我的应用程序崩溃。
但是,它没有给我任何关于它发生的位置或原因的提示,除此之外它似乎可能与 Box 可组合项有关。此外,如果我从我的视图中删除 Slider
,它看起来并没有发生,所以它似乎是因为这个 Composable.
滑块会定期更新并从外部确定的因素中获取值。
是否有明显的错误,或者我可以做些什么来调试或识别问题?
我的库版本是:
androidx-activity = "1.4.0"
androidx-appcompat="1.4.0"
androidxAnnotation="1.2.0"
androidx-core="1.7.0"
compose="1.1.1"
这是我的代码
@Composable
fun MyComposable(
modifier: Modifier = Modifier,
viewModel: MyViewModel? = hiltViewModel<MyViewModel>()
) {
LaunchedEffect(true) {
viewModel.init()
}
Box(modifier = modifier.fillMaxSize()) {
Column(
modifier = Modifier
.fillMaxWidth()
.align(Alignment.BottomCenter)
.padding(bottom = 20.dp)
.padding(horizontal = 20.dp)
) {
Slider(
modifier = Modifier.fillMaxWidth(),
value = viewModel.sliderPosition,
onValueChange = viewModel::onSliderValueChange
)
}
}
}
}
@HiltViewModel
class MyViewModel {
var sliderPosition: Float by mutableStateOf(0f)
fun onSliderValueChange(value: Float) {
sliderPosition = value
}
private fun tickerFlow(period: Duration, initialDelay: Duration = Duration.ZERO) = flow {
delay(initialDelay)
while (true) {
emit(Unit)
delay(period)
}
}
fun init() {
tickerFlow(period = .1.seconds, initialDelay = 0.seconds)
.onEach {
sliderPosition = getExternallyDeterminedSliderPositionValue()
}
.launchIn(viewModelScope)
}
}
错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mycompany.app.android, PID: 29210
java.lang.IllegalArgumentException: Cannot round NaN value.
at kotlin.math.MathKt__MathJVMKt.roundToInt(MathJVM.kt:1132)
at androidx.compose.ui.unit.Density$DefaultImpls.roundToPx-0680j_4(Density.kt:73)
at androidx.compose.ui.layout.IntrinsicMeasureScope$DefaultImpls.roundToPx-0680j_4(IntrinsicMeasureScope.kt:25)
at androidx.compose.ui.layout.MeasureScope$DefaultImpls.roundToPx-0680j_4(MeasureScope.kt:25)
at androidx.compose.ui.node.LayoutNode$measureScope.roundToPx-0680j_4(LayoutNode.kt:493)
at androidx.compose.foundation.layout.PaddingModifier.measure-3p2s80s(Padding.kt:361)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:271)
at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:670)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:118)
at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy.measure-3p2s80s(Box.kt:115)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke-0kLqBqw(BoxWithConstraints.kt:67)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke(BoxWithConstraints.kt:64)
at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy.measure-3p2s80s(SubcomposeLayout.kt:355)
at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.606 29210-29210/com.mycompany.app.android E/AndroidRuntime: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
at androidx.compose.foundation.layout.SizeModifier.measure-3p2s80s(Size.kt:781)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.material.MinimumTouchTargetModifier.measure-3p2s80s(TouchTarget.kt:74)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:846)
at android.view.View.draw(View.java:21884)
at android.view.View.updateDisplayListIfDirty(View.java:20754)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
at android.view.View.updateDisplayListIfDirty(View.java:20709)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:725)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:731)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:840)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3944)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3718)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3026)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1885)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8508)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
2022-03-31 10:27:00.606 29210-29210/com.mycompany.app.android E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:696)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: java.lang.IllegalArgumentException: Cannot round NaN value.
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at kotlin.math.MathKt__MathJVMKt.roundToInt(MathJVM.kt:1132)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.unit.Density$DefaultImpls.roundToPx-0680j_4(Density.kt:73)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.IntrinsicMeasureScope$DefaultImpls.roundToPx-0680j_4(IntrinsicMeasureScope.kt:25)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.MeasureScope$DefaultImpls.roundToPx-0680j_4(MeasureScope.kt:25)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode$measureScope.roundToPx-0680j_4(LayoutNode.kt:493)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.PaddingModifier.measure-3p2s80s(Padding.kt:361)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.610 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:126)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree(MeasureAndLayoutDelegate.kt:271)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree(AndroidComposeView.android.kt:670)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:118)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.measure-BRTryo0(OuterMeasurablePlaceable.kt:75)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.measure-BRTryo0(LayoutNode.kt:1308)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy.measure-3p2s80s(Box.kt:115)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke-0kLqBqw(BoxWithConstraints.kt:67)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints.invoke(BoxWithConstraints.kt:64)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy.measure-3p2s80s(SubcomposeLayout.kt:355)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.InnerPlaceable.measure-BRTryo0(InnerPlaceable.kt:55)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.measure-BRTryo0(DelegatingLayoutNodeWrapper.kt:131)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.SizeModifier.measure-3p2s80s(Size.kt:781)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.material.MinimumTouchTargetModifier.measure-3p2s80s(TouchTarget.kt:74)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.foundation.layout.FillModifier.measure-3p2s80s(Size.kt:658)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.ModifiedLayoutNode.measure-BRTryo0(ModifiedLayoutNode.kt:39)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:99)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure.invoke(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.611 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1798)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:121)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:88)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:76)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.OuterMeasurablePlaceable.remeasure-BRTryo0(OuterMeasurablePlaceable.kt:98)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1317)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default(LayoutNode.kt:1313)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure(MeasureAndLayoutDelegate.kt:170)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:228)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.access$remeasureAndRelayoutIfNeeded(MeasureAndLayoutDelegate.kt:38)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:201)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.measureAndLayout(AndroidComposeView.android.kt:662)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.node.Owner$DefaultImpls.measureAndLayout$default(Owner.kt:182)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:846)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.draw(View.java:21884)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20754)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4542)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4514)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.View.updateDisplayListIfDirty(View.java:20709)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:725)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:731)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:840)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.draw(ViewRootImpl.java:3944)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3718)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3026)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1885)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8508)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer.doCallbacks(Choreographer.java:761)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer.doFrame(Choreographer.java:696)
2022-03-31 10:27:00.612 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Handler.handleCallback(Handler.java:873)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Handler.dispatchMessage(Handler.java:99)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.os.Looper.loop(Looper.java:214)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at android.app.ActivityThread.main(ActivityThread.java:7050)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at java.lang.reflect.Method.invoke(Native Method)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
2022-03-31 10:27:00.613 29210-29210/com.mycompany.app.android E/UncaughtExceptionHandler: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
解决方案是我没有意识到 Floats 可以是 NaN,而 getExternallyDeterminedSliderPositionValue
函数返回了一个 NaN 值。