App get crashed when using Scene composable inside the ModalBottomSheet.
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
)
)
}
)
}
}
}
} `
we have the same issue
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.
In my case when I opened the bottom sheet it gets crashed