sim*_*nes 7 android-jetpack-compose
我正在开发 Jetpack Compose 应用程序,我认为 Slider 导致错误java.lang.IllegalArgumentException: Cannot round NaN value,导致我的应用程序崩溃。
但是,它没有给我任何关于导致其发生的位置或原因的提示,除此之外它似乎可能与 Box 可组合项有关。此外,如果我从我的视图中删除Slider,它看起来好像没有发生,所以看起来这是因为这个可组合项。
滑块会定期更新,并从外部确定的因素中获取值。
是否存在明显错误,或者我可以采取哪些措施来调试或识别问题?
我的库版本是:
androidx-activity = "1.4.0"
androidx-appcompat="1.4.0"
androidxAnnotation="1.2.0"
androidx-core="1.7.0"
compose="1.1.1"
Run Code Online (Sandbox Code Playgroud)
这是我的代码
@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)
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
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$1.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$2.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.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$1.measure-3p2s80s(Box.kt:115)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints$1$1.invoke-0kLqBqw(BoxWithConstraints.kt:67)
at androidx.compose.foundation.layout.BoxWithConstraintsKt$BoxWithConstraints$1$1.invoke(BoxWithConstraints.kt:64)
at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy$1.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$2.invoke(OuterMeasurablePlaceable.kt:99)
at androidx.compose.ui.node.OuterMeasurablePlaceable$remeasure$2.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$1.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$2.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$2.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$1.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$1$1.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$1$1.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$1.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$2.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$2.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.rem
| 归档时间: |
|
| 查看次数: |
5647 次 |
| 最近记录: |