Skip to content

Conversation

@ShreyashKore
Copy link
Contributor

@ShreyashKore ShreyashKore commented Aug 11, 2024

closes #88

@ShreyashKore
Copy link
Contributor Author

I haven't set up the publishing part; as I lack knowledge of the maven-central publishing. I've also kept both nexus and vanniktech publishing plugins in lib.versions.toml. We can remove one of them once you decide which one to use.

Copy link
Owner

@snappdevelopment snappdevelopment left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, it took me a while to review your changes. I checked out your branch and tried to run everything. I came across a couple of issues:

  1. I tried to run the desktop app from the gutter icon, which doesn't seem to work. Maybe it's a tooling issue, but it also throws an exception that it can't find androidx/collection/ScatterMapKt. However running the app with ./gradlew run works.
  2. When I try to scroll the json in the desktop app it doesn't work and prints an IndexOutOfBoundsException.
  3. I am not sure how to run the iOS app. I will have to look into that. Were you able to run it on your machine?
  4. I can't run the UI tests. If I do ./gradlew :composeApp:connectedAndroidTest like the docs say, it tells me: Cannot locate tasks that match ':composeApp:connectedAndroidTest' as project 'composeApp' not found in root project 'JsonTree'.. Do we need to move the tests to the sample package where the actual app is?

The sample app also has a couple of styling issues, but I can fix that later

instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may need to remove either androidTarget. compilerOptions or jvmToolchain block below.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove androidTarget. compilerOptions

@ShreyashKore
Copy link
Contributor Author

ShreyashKore commented Aug 28, 2024

I'm sorry for missing your questions earlier. Went straight to the requested changes 😅

  1. I tried to run the desktop app from the gutter icon, which doesn't seem to work. Maybe it's a tooling issue, but it also throws an exception that it can't find androidx/collection/ScatterMapKt. However running the app with ./gradlew run works.

For me, running from the gutter icon is working. This is the command being used when running from the gutter icon ./gradlew sample:jvmRun -DmainClass=MainKt --quiet. I'm using OpenJDK version "17.0.10"

  1. When I try to scroll the json in the desktop app it doesn't work and prints an IndexOutOfBoundsException.

I'm getting no such exception on the Desktop or any other platform.

  1. I am not sure how to run the iOS app. I will have to look into that. Were you able to run it on your machine?

I've added iosApp module. I'm running the project on mac os, so I am able to build the ios app.

  1. I can't run the UI tests. If I do ./gradlew :composeApp:connectedAndroidTest like the docs say, it tells me: Cannot locate tasks that match ':composeApp:connectedAndroidTest' as project 'composeApp' not found in root project 'JsonTree'.. Do we need to move the tests to the sample package where the actual app is?

Running Android Tests from commonTest doesn't seem to be working for now in CMP. You can still run the JVM tests including UI tests (It seems tests are more flaky on JVM currently one is failing 😞).
Use gutter icon to run individual test or use ./gradlew :jsontree:jvmTest command (note the module name is not composeApp but jsontree).

The sample app also has a couple of styling issues, but I can fix that later

Let me know how I can help.

@snappdevelopment
Copy link
Owner

snappdevelopment commented Sep 1, 2024

For me, running from the gutter icon is working. This is the command being used when running from the gutter icon ./gradlew sample:jvmRun -DmainClass=MainKt --quiet. I'm using OpenJDK version "17.0.10"

It looks like Zac Sweers got the same exception in a Compose Multiplatform project, but it seems like there is no solution. Since running the command works, that's fine for me.
https://slack-chats.kotlinlang.org/t/18893559/this-might-be-a-lazyweb-question-at-this-point-but-is-it-rea

I've added iosApp module. I'm running the project on mac os, so I am able to build the ios app.

Thanks for adding it. I also tried that but I couldn't configure my run config correctly, because my MacOS and Xcode are too old. I tried it on a different Mac and it worked.

Running Android Tests from commonTest doesn't seem to be working for now in CMP. You can still run the JVM tests including UI tests (It seems tests are more flaky on JVM currently one is failing 😞).
Use gutter icon to run individual test or use ./gradlew :jsontree:jvmTest command (note the module name is not composeApp but jsontree).

That's unfortunate, but okay. ./gradlew :jsontree:jvmTest runs successful for me.

One more question:
Do you also get those warnings? Since the iOS app works, I assume this is a false positive?

w: A compileOnly dependency is used in the Kotlin/Native target 'iosArm64':
Compilation: main
Dependencies:
org.jetbrains.kotlinx:atomicfu:0.22.0
w: A compileOnly dependency is used in the Kotlin/Native target 'iosSimulatorArm64':
Compilation: main
Dependencies:
org.jetbrains.kotlinx:atomicfu:0.22.0
w: A compileOnly dependency is used in the Kotlin/Native target 'iosX64':
Compilation: main
Dependencies:
org.jetbrains.kotlinx:atomicfu:0.22.0

@ShreyashKore
Copy link
Contributor Author

Yes, I'm getting the same "compileOnly dependency" warnings.. but according to this Kotlin/kotlinx-atomicfu#448 issue, they are harmless.

@snappdevelopment
Copy link
Owner

I will go ahead and merge this now. I will do some more adjustments to the sample and CI and then try to publish the new version. Thanks for contributing 👍

@snappdevelopment snappdevelopment merged commit 93ecceb into snappdevelopment:main Sep 2, 2024
@snappdevelopment
Copy link
Owner

@ShreyashKore I just released a new snapshot version. Can you confirm if it works for you?

The version is 2.3.0-SNAPSHOT
The snapshot repository can be added like this in your dependencyResolutionManagement block in settings.gradle.kts:

maven { url = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") }

@ShreyashKore
Copy link
Contributor Author

ShreyashKore commented Sep 8, 2024

It's working on jvmDesktop (mac os) and Android. On IOS, it's giving me some errors... Not sure if it's something with the library or the fact that I'm using an experimental version of Compose... I will try to pinpoint the issue and will attach the stack traces.

I'm unable to run from Android studio so these logs are from Xcode.

Uncaught Kotlin exception: kotlin.native.internal.IrLinkageError: Function 'clickable' can not be called: No function found for symbol 'androidx.compose.foundation/clickable|clickable@androidx.compose.ui.Modifier(androidx.compose.foundation.interaction.MutableInteractionSource;androidx.compose.foundation.Indication?;kotlin.Boolean;kotlin.String?;androidx.compose.ui.semantics.Role?;kotlin.Function0<kotlin.Unit>){}[0]'
    at 0   Inspektor Sample                    0x1032b67c3        kfun:kotlin.Throwable#<init>(kotlin.String?){} + 119 
    at 1   Inspektor Sample                    0x1032af957        kfun:kotlin.Error#<init>(kotlin.String?){} + 115 
    at 2   Inspektor Sample                    0x1032ec8bf        kfun:kotlin.native.internal.IrLinkageError#<init>(kotlin.String?){} + 115 
    at 3   Inspektor Sample                    0x1032ec983        kfun:kotlin.native.internal#ThrowIrLinkageError(kotlin.String?){}kotlin.Nothing + 175 
    at 4   Inspektor Sample                    0x10405082b        kfun:com.sebastianneubauer.jsontree.Collapsable#internal + 2427 
    at 5   Inspektor Sample                    0x104053ab7        kfun:com.sebastianneubauer.jsontree.JsonTreeList$lambda$12$lambda$11#internal + 4967 
    at 6   Inspektor Sample                    0x104056d7f        kfun:com.sebastianneubauer.jsontree.$JsonTreeList$lambda$12$lambda$11$FUNCTION_REFERENCE$16.invoke#internal + 211 
    at 7   Inspektor Sample                    0x104057027        kfun:com.sebastianneubauer.jsontree.$JsonTreeList$lambda$12$lambda$11$FUNCTION_REFERENCE$16.$<bridge-DNNNUNU>invoke(androidx.compose.foundation.lazy.LazyItemScope;kotlin.Int;androidx.compose.runtime.Composer;kotlin.Int){}#internal + 239 
    at 8   Inspektor Sample                    0x10340dd27        kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131 
    at 9   Inspektor Sample                    0x10379c84b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 679 
    at 10  Inspektor Sample                    0x1037aadcb        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNNNU>invoke(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(kotlin.Any?;kotlin.Any?;androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 235 
    at 11  Inspektor Sample                    0x10340dd27        kfun:kotlin.Function4#invoke(1:0;1:1;1:2;1:3){}1:4-trampoline + 131 
    at 12  Inspektor Sample                    0x103ce5923        kfun:androidx.compose.foundation.lazy.LazyListItemProviderImpl.Item$lambda$0#internal + 851 
    at 13  Inspektor Sample                    0x103ce5b13        kfun:androidx.compose.foundation.lazy.LazyListItemProviderImpl.$Item$lambda$0$FUNCTION_REFERENCE$3.invoke#internal + 119 
    at 14  Inspektor Sample                    0x103ce5c57        kfun:androidx.compose.foundation.lazy.LazyListItemProviderImpl.$Item$lambda$0$FUNCTION_REFERENCE$3.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 15  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 16  Inspektor Sample                    0x10379c12b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 17  Inspektor Sample                    0x1037aab9f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163 
    at 18  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 19  Inspektor Sample                    0x103691817        kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue<*>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 615 
    at 20  Inspektor Sample                    0x103d1f1b3        kfun:androidx.compose.foundation.lazy.layout#LazyLayoutPinnableItem(kotlin.Any?;kotlin.Int;androidx.compose.foundation.lazy.layout.LazyLayoutPinnedItemList;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 3287 
    at 21  Inspektor Sample                    0x103ce4deb        kfun:androidx.compose.foundation.lazy.LazyListItemProviderImpl.Item#internal + 1331 
    at 22  Inspektor Sample                    0x103df3a2b        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutItemProvider#Item(kotlin.Int;kotlin.Any;androidx.compose.runtime.Composer?;kotlin.Int){}-trampoline + 123 
    at 23  Inspektor Sample                    0x103d1a80b        kfun:androidx.compose.foundation.lazy.layout.SkippableItem$lambda$0#internal + 555 
    at 24  Inspektor Sample                    0x103d1aa13        kfun:androidx.compose.foundation.lazy.layout.$SkippableItem$lambda$0$FUNCTION_REFERENCE$2.invoke#internal + 123 
    at 25  Inspektor Sample                    0x103d1ab7f        kfun:androidx.compose.foundation.lazy.layout.$SkippableItem$lambda$0$FUNCTION_REFERENCE$2.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 26  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 27  Inspektor Sample                    0x10379c12b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 28  Inspektor Sample                    0x1037aab9f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163 
    at 29  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 30  Inspektor Sample                    0x103691817        kfun:androidx.compose.runtime#CompositionLocalProvider(androidx.compose.runtime.ProvidedValue<*>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){} + 615 
    at 31  Inspektor Sample                    0x1031e137f        kfun:androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider#internal + 2823 
    at 32  Inspektor Sample                    0x1031e61c3        kfun:androidx.compose.runtime.saveable.SaveableStateHolder#SaveableStateProvider(kotlin.Any;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){}-trampoline + 123 
    at 33  Inspektor Sample                    0x103d2e48f        kfun:androidx.compose.foundation.lazy.layout.LazySaveableStateHolder.SaveableStateProvider#internal + 1527 
    at 34  Inspektor Sample                    0x1031e61c3        kfun:androidx.compose.runtime.saveable.SaveableStateHolder#SaveableStateProvider(kotlin.Any;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>;androidx.compose.runtime.Composer?;kotlin.Int){}-trampoline + 123 
    at 35  Inspektor Sample                    0x103d1a47b        kfun:androidx.compose.foundation.lazy.layout.SkippableItem#internal + 1527 
    at 36  Inspektor Sample                    0x103d19613        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory.CachedItemContent.createContentLambda$lambda$1#internal + 2355 
    at 37  Inspektor Sample                    0x103d19b1f        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory.CachedItemContent.$createContentLambda$lambda$1$FUNCTION_REFERENCE$0.invoke#internal + 119 
    at 38  Inspektor Sample                    0x103d19c73        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutItemContentFactory.CachedItemContent.$createContentLambda$lambda$1$FUNCTION_REFERENCE$0.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 39  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 40  Inspektor Sample                    0x10379c12b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 41  Inspektor Sample                    0x1037aab9f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163 
    at 42  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 43  Inspektor Sample                    0x1039d5e47        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose$lambda$0#internal + 991 
    at 44  Inspektor Sample                    0x1039d7db7        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.$subcompose$lambda$0$FUNCTION_REFERENCE$6.invoke#internal + 119 
    at 45  Inspektor Sample                    0x1039d7f0b        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.$subcompose$lambda$0$FUNCTION_REFERENCE$6.$<bridge-DNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}#internal + 159 
    at 46  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 47  Inspektor Sample                    0x10379c12b        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any? + 603 
    at 48  Inspektor Sample                    0x1037aab9f        kfun:androidx.compose.runtime.internal.ComposableLambdaImpl#$<bridge-NNNNU>invoke(androidx.compose.runtime.Composer;kotlin.Int){}kotlin.Any?(androidx.compose.runtime.Composer;kotlin.Any?){}kotlin.Any? + 163 
    at 49  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 50  Inspektor Sample                    0x1037af187        kfun:androidx.compose.runtime#invokeComposable(androidx.compose.runtime.Composer;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 219 
    at 51  Inspektor Sample                    0x103670d47        kfun:androidx.compose.runtime.ComposerImpl.doCompose#internal + 2431 
    at 52  Inspektor Sample                    0x10366ff73        kfun:androidx.compose.runtime.ComposerImpl#composeContent(androidx.compose.runtime.collection.ScopeMap<androidx.compose.runtime.RecomposeScopeImpl,kotlin.Any>;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 279 
    at 53  Inspektor Sample                    0x10367ef53        kfun:androidx.compose.runtime.CompositionImpl#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 899 
    at 54  Inspektor Sample                    0x1037b6bfb        kfun:androidx.compose.runtime.ControlledComposition#composeContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99 
    at 55  Inspektor Sample                    0x1036aa183        kfun:androidx.compose.runtime.Recomposer#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 795 
    at 56  Inspektor Sample                    0x1037b5f5b        kfun:androidx.compose.runtime.CompositionContext#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 71 
    at 57  Inspektor Sample                    0x10367358f        kfun:androidx.compose.runtime.ComposerImpl.CompositionContextImpl.composeInitial#internal + 199 
    at 58  Inspektor Sample                    0x1037b5f5b        kfun:androidx.compose.runtime.CompositionContext#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 71 
    at 59  Inspektor Sample                    0x10367358f        kfun:androidx.compose.runtime.ComposerImpl.CompositionContextImpl.composeInitial#internal + 199 
    at 60  Inspektor Sample                    0x1037b5f5b        kfun:androidx.compose.runtime.CompositionContext#composeInitial(androidx.compose.runtime.ControlledComposition;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 71 
    at 61  Inspektor Sample                    0x10367e307        kfun:androidx.compose.runtime.CompositionImpl.composeInitial#internal + 323 
    at 62  Inspektor Sample                    0x10367e0a7        kfun:androidx.compose.runtime.CompositionImpl#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){} + 95 
    at 63  Inspektor Sample                    0x1037b6a77        kfun:androidx.compose.runtime.ReusableComposition#setContent(kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}-trampoline + 99 
    at 64  Inspektor Sample                    0x1039cf5a3        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcomposeInto#internal + 435 
    at 65  Inspektor Sample                    0x1039cf2a7        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose#internal.34 + 1211 
    at 66  Inspektor Sample                    0x1039ceda3        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.subcompose#internal + 979 
    at 67  Inspektor Sample                    0x1039ce893        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState#subcompose(kotlin.Any?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}kotlin.collections.List<androidx.compose.ui.layout.Measurable> + 2407 
    at 68  Inspektor Sample                    0x1039d3bdf        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.Scope.subcompose#internal + 135 
    at 69  Inspektor Sample                    0x103baebc7        kfun:androidx.compose.ui.layout.SubcomposeMeasureScope#subcompose(kotlin.Any?;kotlin.Function2<androidx.compose.runtime.Composer,kotlin.Int,kotlin.Unit>){}kotlin.collections.List<androidx.compose.ui.layout.Measurable>-trampoline + 115 
    at 70  Inspektor Sample                    0x103d1ce97        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScopeImpl#measure(kotlin.Int;androidx.compose.ui.unit.Constraints){}kotlin.collections.List<androidx.compose.ui.layout.Placeable> + 787 
    at 71  Inspektor Sample                    0x103df037b        kfun:androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope#measure(kotlin.Int;androidx.compose.ui.unit.Constraints){}kotlin.collections.List<androidx.compose.ui.layout.Placeable>-trampoline + 115 
    at 72  Inspektor Sample                    0x103cf07cb        kfun:androidx.compose.foundation.lazy.LazyListMeasuredItemProvider#getAndMeasure(kotlin.Int;androidx.compose.ui.unit.Constraints){}androidx.compose.foundation.lazy.LazyListMeasuredItem + 379 
    at 73  Inspektor Sample                    0x103cf0917        kfun:androidx.compose.foundation.lazy.LazyListMeasuredItemProvider#getAndMeasure$default(kotlin.Int;androidx.compose.ui.unit.Constraints;kotlin.Int){}androidx.compose.foundation.lazy.LazyListMeasuredItem + 183 
    at 74  Inspektor Sample                    0x103ce744f        kfun:androidx.compose.foundation.lazy#measureLazyList(kotlin.Int;androidx.compose.foundation.lazy.LazyListMeasuredItemProvider;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Int;kotlin.Float;androidx.compose.ui.unit.Constraints;kotlin.Boolean;kotlin.collections.List<kotlin.Int>;androidx.compose.foundation.layout.Arrangement.Vertical?;androidx.compose.foundation.layout.Arrangement.Horizontal?;kotlin.Boolean;androidx.compose.ui.unit.Density;androidx.compose.foundation.lazy.layout.LazyLayoutIte + 3747 
    at 75  Inspektor Sample                    0x103cdf2df        kfun:androidx.compose.foundation.lazy.rememberLazyListMeasurePolicy$lambda$3#internal + 4527 
    at 76  Inspektor Sample                    0x103cdff0b        kfun:androidx.compose.foundation.lazy.$rememberLazyListMeasurePolicy$lambda$3$FUNCTION_REFERENCE$2.invoke#internal + 211 
    at 77  Inspektor Sample                    0x103ce0267        kfun:androidx.compose.foundation.lazy.$rememberLazyListMeasurePolicy$lambda$3$FUNCTION_REFERENCE$2.$<bridge-NNNNU>invoke(androidx.compose.foundation.lazy.layout.LazyLayoutMeasureScope;androidx.compose.ui.unit.Constraints){}androidx.compose.foundation.lazy.LazyListMeasureResult#internal + 163 
    at 78  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 79  Inspektor Sample                    0x103cffe9f        kfun:androidx.compose.foundation.lazy.layout.LazyLayout$lambda$5$lambda$4#internal + 371 
    at 80  Inspektor Sample                    0x103d01cd7        kfun:androidx.compose.foundation.lazy.layout.$LazyLayout$lambda$5$lambda$4$FUNCTION_REFERENCE$6.invoke#internal + 127 
    at 81  Inspektor Sample                    0x103d01e57        kfun:androidx.compose.foundation.lazy.layout.$LazyLayout$lambda$5$lambda$4$FUNCTION_REFERENCE$6.$<bridge-NNNNU>invoke(androidx.compose.ui.layout.SubcomposeMeasureScope;androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.MeasureResult#internal + 163 
    at 82  Inspektor Sample                    0x103400387        kfun:kotlin.Function2#invoke(1:0;1:1){}1:2-trampoline + 115 
    at 83  Inspektor Sample                    0x1039d66e7        kfun:androidx.compose.ui.layout.LayoutNodeSubcompositionsState.object-1.measure#internal + 1083 
    at 84  Inspektor Sample                    0x103bac793        kfun:androidx.compose.ui.layout.MeasurePolicy#measure__at__androidx.compose.ui.layout.MeasureScope(kotlin.collections.List<androidx.compose.ui.layout.Measurable>;androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.MeasureResult-trampoline + 123 
    at 85  Inspektor Sample                    0x1039f0ce3        kfun:androidx.compose.ui.node.InnerNodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 1059 
    at 86  Inspektor Sample                    0x103b9e113        kfun:androidx.compose.ui.layout.Measurable#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 107 
    at 87  Inspektor Sample                    0x103bdd1e3        kfun:androidx.compose.foundation.layout.OffsetPxNode.measure#internal + 207 
    at 88  Inspektor Sample                    0x103bb2adb        kfun:androidx.compose.ui.node.LayoutModifierNode#measure__at__androidx.compose.ui.layout.MeasureScope(androidx.compose.ui.layout.Measurable;androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.MeasureResult-trampoline + 123 
    at 89  Inspektor Sample                    0x1039f900f        kfun:androidx.compose.ui.node.LayoutModifierNodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 2331 
    at 90  Inspektor Sample                    0x103b9e113        kfun:androidx.compose.ui.layout.Measurable#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 107 
    at 91  Inspektor Sample                    0x10396e38f        kfun:androidx.compose.ui.graphics.SimpleGraphicsLayerModifier.measure#internal + 207 
    at 92  Inspektor Sample                    0x103bb2adb        kfun:androidx.compose.ui.node.LayoutModifierNode#measure__at__androidx.compose.ui.layout.MeasureScope(androidx.compose.ui.layout.Measurable;androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.MeasureResult-trampoline + 123 
    at 93  Inspektor Sample                    0x1039f900f        kfun:androidx.compose.ui.node.LayoutModifierNodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 2331 
    at 94  Inspektor Sample                    0x103bb5847        kfun:androidx.compose.ui.node.NodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 71 
    at 95  Inspektor Sample                    0x103a2d593        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.<init>$lambda$0#internal + 179 
    at 96  Inspektor Sample                    0x103a2d723        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.$<init>$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 71 
    at 97  Inspektor Sample                    0x103a2d7f3        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.$<init>$lambda$0$FUNCTION_REFERENCE$0.$<bridge-DNN>invoke(){}#internal + 71 
    at 98  Inspektor Sample                    0x1033fcdf3        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
    at 99  Inspektor Sample                    0x10375860f        kfun:androidx.compose.runtime.snapshots.Snapshot.Companion#observe(kotlin.Function1<kotlin.Any,kotlin.Unit>?;kotlin.Function1<kotlin.Any,kotlin.Unit>?;kotlin.Function0<0:0>){0§<kotlin.Any?>}0:0 + 1035 
    at 100 Inspektor Sample                    0x103792c5f        kfun:androidx.compose.runtime.snapshots.SnapshotStateObserver.ObservedScopeMap.observe#internal + 847 
    at 101 Inspektor Sample                    0x10378fe2b        kfun:androidx.compose.runtime.snapshots.SnapshotStateObserver#observeReads(0:0;kotlin.Function1<0:0,kotlin.Unit>;kotlin.Function0<kotlin.Unit>){0§<kotlin.Any>} + 1303 
    at 102 Inspektor Sample                    0x103a68dd7        kfun:androidx.compose.ui.node.OwnerSnapshotObserver#observeReads(0:0;kotlin.Function1<0:0,kotlin.Unit>;kotlin.Function0<kotlin.Unit>){0§<androidx.compose.ui.node.OwnerScope>} + 231 
    at 103 Inspektor Sample                    0x103a68ae3        kfun:androidx.compose.ui.node.OwnerSnapshotObserver#observeMeasureSnapshotReads(androidx.compose.ui.node.LayoutNode;kotlin.Boolean;kotlin.Function0<kotlin.Unit>){} + 423 
    at 104 Inspektor Sample                    0x103a2c8ef        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure#internal + 579 
    at 105 Inspektor Sample                    0x103a1f3e7        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.MeasurePassDelegate#remeasure(androidx.compose.ui.unit.Constraints){}kotlin.Boolean + 1039 
    at 106 Inspektor Sample                    0x103a1ef87        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.MeasurePassDelegate#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 715 
    at 107 Inspektor Sample                    0x103b9e113        kfun:androidx.compose.ui.layout.Measurable#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 107 
    at 108 Inspektor Sample                    0x103bd4a2f        kfun:androidx.compose.foundation.layout.BoxMeasurePolicy.measure#internal + 975 
    at 109 Inspektor Sample                    0x103bac793        kfun:androidx.compose.ui.layout.MeasurePolicy#measure__at__androidx.compose.ui.layout.MeasureScope(kotlin.collections.List<androidx.compose.ui.layout.Measurable>;androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.MeasureResult-trampoline + 123 
    at 110 Inspektor Sample                    0x1039f0ce3        kfun:androidx.compose.ui.node.InnerNodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 1059 
    at 111 Inspektor Sample                    0x103bb5847        kfun:androidx.compose.ui.node.NodeCoordinator#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 71 
    at 112 Inspektor Sample                    0x103a2d593        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.<init>$lambda$0#internal + 179 
    at 113 Inspektor Sample                    0x103a2d723        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.$<init>$lambda$0$FUNCTION_REFERENCE$0.invoke#internal + 71 
    at 114 Inspektor Sample                    0x103a2d7f3        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.$<init>$lambda$0$FUNCTION_REFERENCE$0.$<bridge-DNN>invoke(){}#internal + 71 
    at 115 Inspektor Sample                    0x1033fcdf3        kfun:kotlin.Function0#invoke(){}1:0-trampoline + 99 
    at 116 Inspektor Sample                    0x10375860f        kfun:androidx.compose.runtime.snapshots.Snapshot.Companion#observe(kotlin.Function1<kotlin.Any,kotlin.Unit>?;kotlin.Function1<kotlin.Any,kotlin.Unit>?;kotlin.Function0<0:0>){0§<kotlin.Any?>}0:0 + 1035 
    at 117 Inspektor Sample                    0x103792c5f        kfun:androidx.compose.runtime.snapshots.SnapshotStateObserver.ObservedScopeMap.observe#internal + 847 
    at 118 Inspektor Sample                    0x10378fe2b        kfun:androidx.compose.runtime.snapshots.SnapshotStateObserver#observeReads(0:0;kotlin.Function1<0:0,kotlin.Unit>;kotlin.Function0<kotlin.Unit>){0§<kotlin.Any>} + 1303 
    at 119 Inspektor Sample                    0x103a68dd7        kfun:androidx.compose.ui.node.OwnerSnapshotObserver#observeReads(0:0;kotlin.Function1<0:0,kotlin.Unit>;kotlin.Function0<kotlin.Unit>){0§<androidx.compose.ui.node.OwnerScope>} + 231 
    at 120 Inspektor Sample                    0x103a68ae3        kfun:androidx.compose.ui.node.OwnerSnapshotObserver#observeMeasureSnapshotReads(androidx.compose.ui.node.LayoutNode;kotlin.Boolean;kotlin.Function0<kotlin.Unit>){} + 423 
    at 121 Inspektor Sample                    0x103a2c8ef        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure#internal + 579 
    at 122 Inspektor Sample                    0x103a1f3e7        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.MeasurePassDelegate#remeasure(androidx.compose.ui.unit.Constraints){}kotlin.Boolean + 1039 
    at 123 Inspektor Sample                    0x103a1ef87        kfun:androidx.compose.ui.node.LayoutNodeLayoutDelegate.MeasurePassDelegate#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable + 715 
    at 124 Inspektor Sample                    0x103b9e113        kfun:androidx.compose.ui.layout.Measurable#measure(androidx.compose.ui.unit.Constraints){}androidx.compose.ui.layout.Placeable-trampoline + 107 
    at 125 Inspektor Sample                    0x103f9debf        kfun:androidx.compose.material3.ScaffoldLayout$lambda$6#internal + 9203 

@snappdevelopment
Copy link
Owner

Yes, it seems like it's a compatibility issue with the pre-release version of Compose. The iOS app worked for me, so I googled the error and saw that other people had similar problems. They were able to fix it by using a compatible Compose version.
I will try to reproduce this, but I would prefer to stay on a stable Compose version for the release.

@ShreyashKore
Copy link
Contributor Author

ShreyashKore commented Sep 9, 2024

Yup... I just checked on a fresh project with Kotlin "2.0.20" and compose 1.6.11 and it is working fine. Finally, I can use it in my project :) Again thanks for this amazing project 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support Compose Multiplatform

2 participants