Jetpack Compose: "MeasuringIntrinsicsMeasureBlocks is not ready. layoutState is NeedsRelayout"

Viewed 189

I'm receiving some crashes that I cannot relate to our own code, but it happens fairly often. It mostly seems to occur when the UI is updated rapidly, but I'm unable to reproduce it consistently.

I'm using

  • Compose version 1.0.0-alpha10
  • AGP version 7.0.0-alpha04

The stacktrace:

Fatal Exception: java.lang.IllegalArgumentException: e@b4fb400 children: 4 measureBlocks: MeasuringIntrinsicsMeasureBlocks@34b1caf{ measureBlock=b.e.b.t.f$c@812b8bc } is not ready. layoutState is NeedsRelayout
       at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.java:94)
       at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.java:34)
       at androidx.compose.ui.node.ModifiedLayoutNode.performDraw(ModifiedLayoutNode.java:9)
       at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.java:34)
       at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.java:9)
       at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.java:60)
       at androidx.compose.ui.node.LayoutNodeWrapper.draw(LayoutNodeWrapper.java:34)
       at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.java:9)
       at androidx.compose.ui.node.InnerPlaceable.performDraw(InnerPlaceable.java:60)
       at androidx.compose.ui.node.LayoutNodeWrapper$invoke$2.invoke(LayoutNodeWrapper.java:4)
       at androidx.compose.ui.node.LayoutNodeWrapper$invoke$2.invoke(LayoutNodeWrapper.java)
       at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.java:62)
       at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.java:51)
       at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.java:17)
       at androidx.compose.ui.node.LayoutNodeWrapper.invoke(LayoutNodeWrapper.java:40)
       at androidx.compose.ui.node.LayoutNodeWrapper.invoke(LayoutNodeWrapper.java:2)
       at androidx.compose.ui.platform.ViewLayer.dispatchDraw(ViewLayer.java:44)
       at android.view.View.draw(View.java:21963)
       at android.view.View.updateDisplayListIfDirty(View.java:20833)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5132)
       at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5104)
       at android.view.View.updateDisplayListIfDirty(View.java:20788)
       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:4035)
       at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3798)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3100)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1963)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8719)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:988)
       at android.view.Choreographer.doCallbacks(Choreographer.java:765)
       at android.view.Choreographer.doFrame(Choreographer.java:700)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:967)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:216)
       at android.app.ActivityThread.main(ActivityThread.java:7266)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)

What is going on here?

0 Answers
Related