ArrayIndexOutOfBoundsException in LazyColumnFor (androidx.compose.foundation:foundation:1.0.0-alpha07)

Viewed 737

After upgrading jetpack compose to 1.0.0-alpha07, the LazyColumnFor got array out of bound problem even in simple setup. Anyone could help ?

import androidx.compose.foundation.background
import androidx.compose.foundation.lazy.LazyColumnFor
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.ui.tooling.preview.Preview

@Preview(name = "Preview Testing")
@Composable
fun Testing() {
    LazyColumnFor(
            items = listOf("1", "2"),
            modifier = Modifier.background(Color.White)
    ) { item ->
        Text(text = "Item:" + item)
    }
}

Error Message during Android Studio Preview rendering

java.lang.ArrayIndexOutOfBoundsException: Index 162 out of bounds for length 160
    at androidx.compose.runtime.SlotTableKt.parentAnchor(SlotTable.kt:2468)
    at androidx.compose.runtime.SlotTableKt.access$parentAnchor(SlotTable.kt)
    at androidx.compose.runtime.SlotReader.reposition(SlotTable.kt:776)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:453)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.getGroup(SlotTree.kt:457)
    at androidx.ui.tooling.SlotTreeKt.asTree(SlotTree.kt:520)
    at androidx.ui.tooling.preview.ComposeViewAdapter.onLayout_Original(ComposeViewAdapter.kt:224)
    at androidx.ui.tooling.preview.ComposeViewAdapter.onLayout(ComposeViewAdapter.kt)
    at android.view.View.layout_Original(View.java:22844)
    at android.view.View_Delegate.layout(View_Delegate.java:91)
    at android.view.View.layout(View.java:22830)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout_Original(View.java:22844)
    at android.view.View_Delegate.layout(View_Delegate.java:91)
    at android.view.View.layout(View.java:22830)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1103)
    at android.view.View.layout_Original(View.java:22844)
    at android.view.View_Delegate.layout(View_Delegate.java:91)
    at android.view.View.layout(View.java:22830)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout_Original(View.java:22844)
    at android.view.View_Delegate.layout(View_Delegate.java:91)
    at android.view.View.layout(View.java:22830)
    at android.view.ViewGroup.layout(ViewGroup.java:6389)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:366)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:435)
    at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:141)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:710)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$6(RenderTask.java:865)
    at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:174)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

Here is the screenshot of Android Studio Preview

1 Answers

It seems to be an issue the the Preview, try updating it to alpha08 and also check if when running on a device it works.

If it's not fixed in alpha08, open an issue for it here: https://issuetracker.google.com/issues/new?component=612128&template=1253476.

Related