Dev Notes

Dev Notes: January 10 - 16, 2025

Work

java.lang.IllegalStateException: Error: Placement happened before lookahead.

I’m still figuring out what caused this bug. It seems this is a Compose bug. Based on this Google Issue Tracker issue this was resolved when using the Compose UI library version 1.8.0-alpha03. So I used 1.8.0-alpha07 instead since this was the latest version.

java.lang.IllegalStateException: Error: Placement happened before lookahead.
        at androidx.compose.ui.internal.InlineClassHelperKt.throwIllegalStateException(InlineClassHelperKt:26)
        at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeSelf-MLgxB_4(LayoutNodeLayoutDelegate:2110)
        at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.placeAt-f8xVGno(LayoutNodeLayoutDelegate:773)
        at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable:35)
        at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer-aW-9-wM(Placeable:655)
        at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer-aW-9-wM$default(Placeable:390)
        at androidx.compose.foundation.lazy.LazyListMeasuredItem.place(LazyListMeasuredItem:241)
        at androidx.compose.foundation.lazy.LazyListMeasureKt$measureLazyList$8.invoke(LazyListMeasureKt:408)
        at androidx.compose.foundation.lazy.LazyListMeasureKt$measureLazyList$8.invoke(LazyListMeasureKt:405)
        at E.AndroidSelectionHandles_androidKt$drawSelectionHandle$1$1$1$1.invoke(AndroidSelectionHandles_androidKt:32)
....

Baseline and Startup Profiles

Implemented Baseline Profiles after days of studying about its benefits and its implementation. At first, I was generating the text files, baseline-prof.txt and startup-prof.txt. It turns out, I need to copy it inside the main folder along with AndroidManifest.xml.

Migrated to Sentry from Bugsnag

I migrated both projects to Sentry, it has more features in their free account compared to Bugsnag.

gradle.properties

Added more improvements to Android’s build performance based on the settings below.

org.gradle.jvmargs=-Xmx3072m -Dfile.encoding=UTF-8 -XX:+UseParallelGC -Xmx6g -XX:MaxMetaspaceSize=1g

Interesting stuffs

#dev-notes