Status Update
Comments
cl...@google.com <cl...@google.com>
mo...@google.com <mo...@google.com> #2
So changing this section in my app/build.gradle
file:
androidResources {
noCompress 'tflite'
}
to this:
androidResources.noCompress = "tflite"
Solves my issue. I still consider this a bug though...
po...@gmail.com <po...@gmail.com> #3
This will be fixed in AGP 7.1.0-alpha07 (before then it accidentally has an 'it' reciever)
androidResources {
it.noCompress 'tflite'
}
It might be worth backporting the fix for a 7.0.1, or at least removing the deprecation of the aaptOptions block so others aren't lead to this broken path
an...@google.com <an...@google.com> #4
ap...@google.com <ap...@google.com> #5
Branch: androidx-main
commit 1fe98b84cc1069d90bde9a1e0f43f9e3f5356c9f
Author: Andrey Kulikov <andreykulikov@google.com>
Date: Wed Dec 08 19:23:00 2021
Fix for incorrectly detected measure/place called twice
1) There are multiple corner cases when it is expected that the node will be remeasures twice during the same measureIteration inside MeasureAndLayoutDelegate. All of them happens if there is a requestRemeasure() call during the measuring for the node or the parent of the node which was already measured. Instead of relaying on it I decided to stop using one measureIteration per Owner and instead detect if our users tries to measure node twice via LayoutNode.measuredByParent property we already had previously. I just needed to reset this value properly before rerunning measure/layout.
2) Similar issue with place() being called twice. Previously we were incorrectly differentiating between the cases when our parent is measuring us during the measure block, and when we are remeasured individually. In the second case we shouldn't update the place order and assert it is not placed twice.
Fixes: 208675143
Fixes: 208855077
Test: new tests in multiple test files
Change-Id: Iaeec10d66da36e7b6bc681963788e66b53e2129e
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OuterMeasurablePlaceable.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/AndroidLayoutDrawTest.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/Helpers.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/MeasureAndLayoutDelegateTest.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/MeasureAndLayoutDelegate.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/InnerPlaceable.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/NodesRemeasuredOnceTest.kt
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/layout/MeasuringPlacingTwiceIsNotAllowed.kt
[Deleted User] <[Deleted User]> #6
ak...@gmail.com <ak...@gmail.com> #7
I think I have this issue while using LazyVerticalGrid and paging library. Below is a reproducible code. The error occurs when there are more than 50 or 100 items and you scroll really fast to the bottom of screen.
Also, I am using compose version 1.1.1
LazyVerticalGrid(
columns = GridCells.Fixed(2),
modifier = Modifier.testTag("ProductList"),
state = rememberLazyGridState(),
contentPadding = PaddingValues(8.dp)
) {
if (products.loadState.refresh != LoadState.Loading) {
items(products.itemCount) { index ->
val product = products.get(index = index)
val review = reviews.value.firstOrNull { item ->
item.sku == product?.variants?.edges?.first()?.node?.sku
}
ProductItem(
product = product!!,
openProductDetail = {
openProduct(it)
},
removeProduct = {
viewModel.removeProduct(it)
},
addToWishlist = { product, variant ->
viewModel.addItemToWishlist(product, variant)
},
modifier = Modifier
.padding(8.dp)
.testTag("ProductListItem"),
savedProducts = savedProducts.value,
review = review
)
}
}
item(span = { GridItemSpan(2) }) {
Box(modifier = Modifier.align(Alignment.BottomCenter)) {
when {
products.loadState.refresh == LoadState.Loading -> {
PlaceholderView(
title = "Loading Products...",
subtitle = "fetching products from collection"
)
}
products.loadState.refresh != LoadState.Loading && products.loadState.append != LoadState.Loading -> {
Text(
text = "${products.itemCount} Items",
modifier = Modifier
.padding(bottom = 16.dp)
)
}
products.loadState.append == LoadState.Loading -> {
CircularProgressIndicator()
}
products.itemCount == 0 -> {
PlaceholderView(
title = "No products found",
subtitle = "Please add products to the collection"
)
}
}
}
}
}
an...@google.com <an...@google.com> #8
ak...@gmail.com <ak...@gmail.com> #9
I was not able to upgrade to 1.2.1 as it gave me the following error but 1.2.0 was still have the same issue.
Execution failed for task ':app:compileStorelabDebugKotlin'.
> Could not resolve all files for configuration ':app:kotlin-extension'.
> Could not find androidx.compose.compiler:compiler:1.2.1.
Required by:
project :app
an...@google.com <an...@google.com> #10
Anyway, if you can see similar bug on Compose 1.2 please file a separate bug and if you will be able to come up with a repro project it will be really great. Thank you
ak...@gmail.com <ak...@gmail.com> #11
I have created a separate issue:
na...@google.com <na...@google.com> #12
The following release(s) address this bug:
androidx.compose.ui:ui:1.3.0
ra...@gmail.com <ra...@gmail.com> #13
FATAL EXCEPTION: main Process: com.spare8.debug, PID: 24877 java.lang.IllegalArgumentException: place is called on a deactivated node at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeOuterCoordinator-f8xVGno(LayoutNodeLayoutDelegate.kt:732) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate.kt:724) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:33) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer-aW-9-wM(Placeable.kt:454) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer-aW-9-wM$default(Placeable.kt:319) at androidx.compose.foundation.lazy.LazyListMeasuredItem.place(LazyListMeasuredItem.kt:210) at androidx.compose.foundation.lazy.LazyListMeasureKt$measureLazyList$7.invoke(LazyListMeasure.kt:367) at androidx.compose.foundation.lazy.LazyListMeasureKt$measureLazyList$7.invoke(LazyListMeasure.kt:364) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$Scope$layout$1.placeChildren(SubcomposeLayout.kt:897) at androidx.compose.foundation.lazy.LazyListMeasureResult.placeChildren(Unknown Source:2) at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1$measure-3p2s80s$$inlined$createMeasureResult$2.placeChildren(SubcomposeLayout.kt:989) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:365) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate$layoutChildrenBlock$1.invoke(LayoutNodeLayoutDelegate.kt:360) at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256) 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:393) at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.onNodePlaced$ui_release(LayoutNodeLayoutDelegate.kt:551) at androidx.compose.ui.node.InnerNodeCoordinator.placeAt-f8xVGno(InnerNodeCoordinator.kt:160) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:33) at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:425) at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:217) at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$2$1.invoke(AndroidOverscroll.android.kt:589) at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$2$1.invoke(AndroidOverscroll.android.kt:588) at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:107) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:167) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:33) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer(Placeable.kt:451) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer$default(Placeable.kt:298) at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$1$1.invoke(AndroidOverscroll.android.kt:577) at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$1$1.invoke(AndroidOverscroll.android.kt:570) at androidx.compose.ui.node.LookaheadCapablePlaceable$layout$1.placeChildren(LookaheadDelegate.kt:107) at androidx.compose.ui.node.LayoutModifierNodeCoordinator.placeAt-f8xVGno(LayoutModifierNodeCoordinator.kt:167)
I am using LazyColumn with Paging 3 library. I am getting this error when i try to scroll my list. kotlinCompilerExtensionVersion = "1.5.9" kotlin-version = 1.9.22 still it won't work
yo...@gmail.com <yo...@gmail.com> #14
I have the same issue in my LazyGrid. I'm using Compose BOM 2024.02.02
and Kotlin 1.9.20
Here is my stacktrace:
java.lang.IllegalArgumentException: measure is called on a deactivated node
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0
at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw
at androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl.measure-0kLqBqw
at androidx.compose.foundation.lazy.grid.LazyGridMeasuredItemProvider.getAndMeasure-3p2s80s
at androidx.compose.foundation.lazy.grid.LazyGridMeasuredLineProvider.getAndMeasure
at androidx.compose.foundation.lazy.grid.LazyGridMeasuredLineProvider.getAndMeasure
at androidx.compose.foundation.lazy.grid.LazyGridMeasureKt.measureLazyGrid-W2FL7xs
at androidx.compose.foundation.lazy.grid.LazyGridKt$rememberLazyGridMeasurePolicy$1$1.invoke-0kLqBqw
at androidx.compose.foundation.lazy.grid.LazyGridKt$rememberLazyGridMeasurePolicy$1$1.invoke
at androidx.compose.foundation.lazy.grid.LazyGridKt$rememberLazyGridMeasurePolicy$1$1.invoke
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke-0kLqBqw
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke-0kLqBqw
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke
at androidx.compose.foundation.lazy.layout.LazyLayoutKt$LazyLayout$3$2$1.invoke
at androidx.compose.ui.layout.LayoutNodeSubcompositionsState.access$getScope$p
at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s
at androidx.compose.ui.layout.LayoutNodeSubcompositionsState$createMeasurePolicy$1.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$2.invoke-3p2s80s
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$2.invoke
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$2.invoke
at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s
at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$1.invoke-3p2s80s
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$1.invoke
at androidx.compose.foundation.AndroidOverscroll_androidKt$StretchOverscrollNonClippingLayer$1.invoke
at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s
at androidx.compose.ui.layout.LayoutModifierImpl.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(SourceFile:252)
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(SourceFile:251)
at com.google.firebase.heartbeatinfo.HeartBeatConsumerComponent$1.observe
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe
at com.google.firebase.heartbeatinfo.HeartBeatConsumerComponent$1.observe
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0
at androidx.constraintlayout.compose.Measurer.measure
at androidx.constraintlayout.compose.Measurer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidget.getVerticalBiasPercent
at androidx.constraintlayout.core.widgets.analyzer.Direct.solveVerticalMatchConstraint
at androidx.constraintlayout.core.widgets.analyzer.Direct.solveVerticalMatchConstraint
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.layout
at androidx.constraintlayout.core.widgets.analyzer.Direct.solvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.layout
at androidx.constraintlayout.core.widgets.ConstraintWidget.getMinWidth
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solveLinearSystem
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solveLinearSystem
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.compose.Measurer.performMeasure-DjhGOtQ
at androidx.constraintlayout.compose.ConstraintLayoutKt$rememberConstraintLayoutMeasurePolicy$1$measurePolicy$1.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0
at androidx.compose.foundation.layout.FillNode.measure-3p2s80s
at androidx.compose.foundation.layout.FillNode.measure-3p2s80s
at androidx.compose.ui.node.NodeCoordinator.access$setMeasurementConstraints-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(SourceFile:252)
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(SourceFile:251)
at com.google.firebase.heartbeatinfo.HeartBeatConsumerComponent$1.observe
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe
at com.google.firebase.heartbeatinfo.HeartBeatConsumerComponent$1.observe
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release$default
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA
at androidx.compose.ui.node.LayoutNode.isDeactivated
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureAndRelayoutIfNeeded
at androidx.compose.ui.node.LayoutNode.forEachChild
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtreeInternal
at androidx.compose.ui.node.MeasureAndLayoutDelegate.onlyRemeasureIfScheduled
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtreeInternal
at androidx.compose.ui.node.DepthSortedSetsForDifferentPasses.isEmpty
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree
at androidx.compose.ui.node.MeasureAndLayoutDelegate.forceMeasureTheSubtree
at androidx.compose.ui.platform.AndroidComposeView.forceMeasureTheSubtree
at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$getLayoutNode$p
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.Owner.forceMeasureTheSubtree$default
at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release
at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA
at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly
at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly
at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly
at androidx.compose.ui.platform.AndroidComposeView.onMeasure
at androidx.compose.ui.platform.AndroidComposeView.onMeasure
at android.view.View.measure(View.java:28571)
at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release
at androidx.compose.ui.platform.AbstractComposeView.onMeasure
at androidx.compose.ui.platform.AbstractComposeView.onMeasure
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:28571)
at androidx.constraintlayout.widget.ConstraintLayout$Measurer.measure
at androidx.constraintlayout.widget.ConstraintLayout$Measurer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidget.getVerticalBiasPercent
at androidx.constraintlayout.core.widgets.analyzer.Direct.solveVerticalMatchConstraint
at androidx.constraintlayout.core.widgets.analyzer.Direct.solveVerticalMatchConstraint
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.analyzer.Direct.verticalSolvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.layout
at androidx.constraintlayout.core.widgets.analyzer.Direct.solvingPass
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.layout
at androidx.constraintlayout.core.widgets.ConstraintWidget.getMinWidth
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solveLinearSystem
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solveLinearSystem
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.analyzer.BasicMeasure.solverMeasure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.core.widgets.ConstraintWidgetContainer.measure
at androidx.constraintlayout.widget.ConstraintLayout.resolveSystem
at androidx.constraintlayout.widget.ConstraintLayout.resolveSystem
at androidx.constraintlayout.widget.ConstraintLayout.onMeasure
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at androidx.appcompat.widget.ContentFrameLayout.onMeasure
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:878)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
at android.view.View.measure(View.java:28571)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7390)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:1036)
at android.view.View.measure(View.java:28571)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:5203)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3603)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3973)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3288)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11344)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1689)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1698)
at android.view.Choreographer.doCallbacks(Choreographer.java:1153)
at android.view.Choreographer.doFrame(Choreographer.java:1079)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1646)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
an...@google.com <an...@google.com> #15
Please file a separate bug and share a code we can use to reproduce it if possible. Thanks
Description
Jetpack Compose release version: 1.1.0-beta04 Kotlin version: 1.6.0
In certain conditions, an
java.lang.IllegalStateException: Place was called on a node which was placed already
occurs when popping a fragment transaction. This didn't happen on 1.1.0-beta03Sample project:https://github.com/fbarthelery/bug-compose-ise