From 1371773530630a50d996b6e40cdf591a52cc4d30 Mon Sep 17 00:00:00 2001 From: Ivan Vershigora Date: Mon, 29 Dec 2025 18:48:17 +0000 Subject: [PATCH] fix: catch error in cameraProviderFuture.get() --- android/src/main/java/com/rncamerakit/CKCamera.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/rncamerakit/CKCamera.kt b/android/src/main/java/com/rncamerakit/CKCamera.kt index 4bb3c853c..492c75cba 100644 --- a/android/src/main/java/com/rncamerakit/CKCamera.kt +++ b/android/src/main/java/com/rncamerakit/CKCamera.kt @@ -186,7 +186,17 @@ class CKCamera(context: ThemedReactContext) : FrameLayout(context), LifecycleObs val cameraProviderFuture = ProcessCameraProvider.getInstance(getActivity()) cameraProviderFuture.addListener({ // Used to bind the lifecycle of cameras to the lifecycle owner - cameraProvider = cameraProviderFuture.get() + try { + cameraProvider = cameraProviderFuture.get() + } catch (exc: Exception) { + val rootCause = exc.cause?.cause?.message ?: exc.cause?.message ?: exc.message ?: "Camera initialization failed" + Log.e(TAG, "Camera initialization failed: $rootCause", exc) + val surfaceId = UIManagerHelper.getSurfaceId(currentContext) + UIManagerHelper + .getEventDispatcherForReactTag(currentContext, id) + ?.dispatchEvent(ErrorEvent(surfaceId, id, rootCause)) + return@addListener + } // Rotate the image according to device orientation, even when UI orientation is locked orientationListener = object : OrientationEventListener(context, SensorManager.SENSOR_DELAY_UI) {