Merge "Returns a default ExtensionsManager even if something went wrong when initializing the vendor library" into androidx-main
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
index b231ccb..3e74c77 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/ExtensionsManager.java
@@ -178,6 +178,15 @@
+ "are missed in the vendor library. " + e);
completer.set(getOrCreateExtensionsManager(
ExtensionsAvailability.LIBRARY_UNAVAILABLE_MISSING_IMPLEMENTATION));
+ } catch (RuntimeException e) {
+ // Catches all unexpected runtime exceptions and still returns an
+ // ExtensionsManager instance which performs default behavior.
+ Logger.e(TAG,
+ "Failed to initialize extensions. Something wents wrong when "
+ + "initializing the vendor library. "
+ + e);
+ completer.set(getOrCreateExtensionsManager(
+ ExtensionsAvailability.LIBRARY_UNAVAILABLE_ERROR_LOADING));
}
return "Initialize extensions";