sceneview-android icon indicating copy to clipboard operation
sceneview-android copied to clipboard

App get crashed when using Scene composable inside the ModalBottomSheet.

Open rsuman132 opened this issue 1 month ago • 3 comments

Crash logs:

################ ARCore Native Error ################## BUILD_CHANGELIST:815835087 BUILD_BASELINE_CHANGELIST:807035025 ################### Stack Trace Begin ################ ARCoreError: third_party/arcore/ar/core/android/implementation/android_frame_manager_gl.cc:261 https://cs.corp.google.com/piper///depot/google3/third_party/arcore/ar/core/android/implementation/android_frame_manager_gl.cc?g=0&l=261 ARCoreError: third_party/arcore/ar/core/frame_manager.cc:493 https://cs.corp.google.com/piper///depot/google3/third_party/arcore/ar/core/frame_manager.cc?g=0&l=493 ARCoreError: third_party/arcore/ar/core/frame_manager.cc:196 https://cs.corp.google.com/piper///depot/google3/third_party/arcore/ar/core/frame_manager.cc?g=0&l=196 ARCoreError: third_party/arcore/ar/core/session.cc:2023 https://cs.corp.google.com/piper///depot/google3/third_party/arcore/ar/core/session.cc?g=0&l=2023 ARCoreError: third_party/arcore/ar/core/c_api/session_lite_c_api.cc:76 https://cs.corp.google.com/piper///depot/google3/third_party/arcore/ar/core/c_api/session_lite_c_api.cc?g=0&l=76 ################### Stack Trace End #################

                                                                                                ################### Undecorated Trace Begin  #################
                                                                                                INTERNAL: 
                                                                                                ARCoreError: third_party/arcore/ar/core/session.cc:2023
                                                                                                
                                                                                                ARCoreError: third_party/arcore/ar/core/frame_manager.cc:196
                                                                                                
                                                                                                ARCoreError: third_party/arcore/ar/core/frame_manager.cc:493
                                                                                                
                                                                                                ARCoreError: third_party/arcore/ar/core/android/implementation/android_frame_manager_gl.cc:261
                                                                                                egl_image pointer=0xb40000714c0a8980 texture_oes_id=22 gl_error=1281Failed to bind to oes texture [type.googleapis.com/util.ErrorSpacePayload='ArStatusErrorSpace::AR_ERROR_FATAL']
                                                                                                === Source Location Trace: ===
                                                                                                third_party/arcore/ar/core/status.cc:166
                                                                                                third_party/arcore/ar/core/android/implementation/android_frame_manager_gl.cc:261
                                                                                                third_party/arcore/ar/core/frame_manager.cc:493
                                                                                                third_party/arcore/ar/core/frame_manager.cc:196
                                                                                                third_party/arcore/ar/core/frame_manager.cc:143
                                                                                                third_party/arcore/ar/core/frame_manager.cc:90
                                                                                                third_party/arcore/ar/core/session.cc:2023
                                                                                                
                                                                                                ################### Undecorated Trace End  #################

Sample code:

` val sheetState = rememberModalBottomSheetState() val scope = rememberCoroutineScope() var showBottomSheet by remember { mutableStateOf(false) } Scaffold( floatingActionButton = { ExtendedFloatingActionButton( text = { Text("Show bottom sheet") }, icon = { Icon(Icons.Filled.Add, contentDescription = "") }, onClick = { showBottomSheet = true } ) } ) { contentPadding -> // Screen content

if (showBottomSheet) {
    ModalBottomSheet(
        onDismissRequest = {
            showBottomSheet = false
        },
        sheetState = sheetState
    ) {
        Box(
                modifier = Modifier.fillMaxSize().padding(16.dp),
                contentAlignment = Alignment.Center
            ) {
                val engine = rememberEngine()
                val modelLoader = rememberModelLoader(engine)
                val materialLoader = rememberMaterialLoader(engine)
                val environmentLoader = rememberEnvironmentLoader(engine)
                Scene(
                    modifier = Modifier.fillMaxSize(),
                    engine = engine,
                    view = rememberView(engine),
                    renderer = rememberRenderer(engine),
                    scene = rememberScene(engine),
                    modelLoader = modelLoader,
                    materialLoader = materialLoader,
                    environmentLoader = environmentLoader,
                    cameraNode = rememberCameraNode(engine) {
                        position = io.github.sceneview.math.Position(z = 4.0f)
                    },
                    cameraManipulator = null,
                    childNodes = rememberNodes {
                        // Add a glTF model
                        add(
                            ModelNode(
                                // Create a single instance model from assets file
                                modelInstance = modelLoader.createModelInstance(
                                    assetFileLocation = "models/damaged_helmet.glb"
                                ),
                                // Make the model fit into a 1 unit cube
                                scaleToUnits = 1.0f
                            )
                        )
                    }
                )
            }
    }
}

} `

rsuman132 avatar Dec 05 '25 10:12 rsuman132

we have the same issue

tdc-peter avatar Dec 08 '25 09:12 tdc-peter

I might have run into the same issue. For me the app crashes after closing the ModalBottomSheet or after navigating onwards while using Scene inside a Card component. Annoyingly no stack trace showed up in the logs. What fixed my issue is adding the following:

var sceneView by remember { mutableStateOf<SceneView?>(null) }

DisposableEffect(lifecycleOwner) {
    onDispose {
        sceneView?.let { view ->
            view.childNodes = emptyList()
        }
    }
}

Inside the Scene component I assign the sceneView variable as follows:

onViewCreated = {
    sceneView = this
}

I hope this works for you too.

Daphne-CoffeeIT avatar Dec 08 '25 10:12 Daphne-CoffeeIT

In my case when I opened the bottom sheet it gets crashed

rsuman132 avatar Dec 08 '25 10:12 rsuman132