Zoom SDK crashes when installing on-demand module

Description

When provided as a feature module, the Zoom SDK crashes the first time it is installed

Which Android Meeting SDK version?
6.4.5.29521

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Provide the Zoom SDK as a dynamic feature module
  2. Build the app and publish to the Google Play store
  3. Install the app from the Google Play store
  4. Open the app and join a Zoom meeting
  5. See that the app crashes when initializing Zoom after the module is installed

Troubleshooting Routes
I’ve tried catching the error and re-initializing the Zoom SDK, but can’t find the right place to catch the error.

Smartphone (please complete the following information):

  • Device: Samsung Galaxy S21
  • OS: Android 14

Additional context
This crash only happens when the Zoom SDK is initialized immediately after the feature module is installed. Trying to initialize the Zoom SDK again, after the crash, has always worked. I’d prefer not to install the feature module on app startup because not everyone will use the Zoom features in our app. We need to provide Zoom as a feature module because version 6.4.5.29521 is large enough that it makes our app bundle too large to submit to the Play Store.

This is the crash:

java.io.FileNotFoundException: /data/app/~~QxtGtLGNaEaMlgiblyIzZg==/com.my_app.mobile-C7TOPE85SRUxc52jtoAHRg==/base.apk (No such file or directory)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:293)
	at java.util.zip.ZipFile.<init>(ZipFile.java:258)
	at java.util.jar.JarFile.<init>(JarFile.java:183)
	at java.util.jar.JarFile.<init>(JarFile.java:176)
	at libcore.io.ClassPathURLStreamHandler.<init>(ClassPathURLStreamHandler.java:52)
	at dalvik.system.DexPathList$NativeLibraryElement.maybeInit(DexPathList.java:863)
	at dalvik.system.DexPathList$NativeLibraryElement.findNativeLibrary(DexPathList.java:885)
	at dalvik.system.DexPathList.findLibrary(DexPathList.java:594)
	at dalvik.system.BaseDexClassLoader.findLibrary(BaseDexClassLoader.java:371)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1056)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
	at java.lang.System.loadLibrary(System.java:1661)
	at us.zoom.internal.impl.p2.e(ZoomSDKImpl.java:14)
	at us.zoom.internal.impl.p2.v(ZoomSDKImpl.java:550)
	at us.zoom.internal.impl.p2.a(ZoomSDKImpl.java:25)
	at us.zoom.sdk.ZoomSDK.initialize(ZoomSDK.java:1)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8893)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Unable to open zip file: /data/app/~~QxtGtLGNaEaMlgiblyIzZg==/com.my_app.mobile-C7TOPE85SRUxc52jtoAHRg==/split_config.arm64_v8a.apk
java.io.FileNotFoundException: /data/app/~~QxtGtLGNaEaMlgiblyIzZg==/com.my_app.mobile-C7TOPE85SRUxc52jtoAHRg==/split_config.arm64_v8a.apk (No such file or directory)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:293)
	at java.util.zip.ZipFile.<init>(ZipFile.java:258)
	at java.util.jar.JarFile.<init>(JarFile.java:183)
	at java.util.jar.JarFile.<init>(JarFile.java:176)
	at libcore.io.ClassPathURLStreamHandler.<init>(ClassPathURLStreamHandler.java:52)
	at dalvik.system.DexPathList$NativeLibraryElement.maybeInit(DexPathList.java:863)
	at dalvik.system.DexPathList$NativeLibraryElement.findNativeLibrary(DexPathList.java:885)
	at dalvik.system.DexPathList.findLibrary(DexPathList.java:594)
	at dalvik.system.BaseDexClassLoader.findLibrary(BaseDexClassLoader.java:371)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1056)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
	at java.lang.System.loadLibrary(System.java:1661)
	at us.zoom.internal.impl.p2.e(ZoomSDKImpl.java:14)
	at us.zoom.internal.impl.p2.v(ZoomSDKImpl.java:550)
	at us.zoom.internal.impl.p2.a(ZoomSDKImpl.java:25)
	at us.zoom.sdk.ZoomSDK.initialize(ZoomSDK.java:1)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8893)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Unable to open zip file: /data/app/~~QxtGtLGNaEaMlgiblyIzZg==/com.my_app.mobile-C7TOPE85SRUxc52jtoAHRg==/split_config.xxhdpi.apk
java.io.FileNotFoundException: /data/app/~~QxtGtLGNaEaMlgiblyIzZg==/com.my_app.mobile-C7TOPE85SRUxc52jtoAHRg==/split_config.xxhdpi.apk (No such file or directory)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:293)
	at java.util.zip.ZipFile.<init>(ZipFile.java:258)
	at java.util.jar.JarFile.<init>(JarFile.java:183)
	at java.util.jar.JarFile.<init>(JarFile.java:176)
	at libcore.io.ClassPathURLStreamHandler.<init>(ClassPathURLStreamHandler.java:52)
	at dalvik.system.DexPathList$NativeLibraryElement.maybeInit(DexPathList.java:863)
	at dalvik.system.DexPathList$NativeLibraryElement.findNativeLibrary(DexPathList.java:885)
	at dalvik.system.DexPathList.findLibrary(DexPathList.java:594)
	at dalvik.system.BaseDexClassLoader.findLibrary(BaseDexClassLoader.java:371)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1056)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
	at java.lang.System.loadLibrary(System.java:1661)
	at us.zoom.internal.impl.p2.e(ZoomSDKImpl.java:14)
	at us.zoom.internal.impl.p2.v(ZoomSDKImpl.java:550)
	at us.zoom.internal.impl.p2.a(ZoomSDKImpl.java:25)
	at us.zoom.sdk.ZoomSDK.initialize(ZoomSDK.java:1)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8893)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Process: com.my_app.mobile, PID: 15280
java.lang.UnsatisfiedLinkError: dlopen failed: library "libZoomTask.so" not found: needed by /data/app/~~ShTm6FeR8uJryutzXFDpNQ==/com.my_app.mobile-xqd7f7f30kK76QxAQWRcMw==/split_videoconference.config.arm64_v8a.apk!/lib/arm64-v8a/libcmmlib.so in namespace clns-4
	at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
	at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
	at java.lang.System.loadLibrary(System.java:1661)
	at com.zipow.cmmlib.AppContext.<clinit>(AppContext.java:46)
	at us.zoom.internal.impl.p2.a(ZoomSDKImpl.java:59)
	at us.zoom.sdk.ZoomSDK.initialize(ZoomSDK.java:1)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8893)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@c469762, Dispatchers.Main.immediate]

I updated my build to install the Zoom SDK module on app startup, and am still getting this error when the Zoom SDK is first initialized.