Zoom android sdk integration in android dynamic feature module

Hi,
I am trying to integrate zoom android sdk in my project.
I don’t want my apk size to become bigger, So I am trying to integrate zoom sdk as android dynamic feature module.
While adding library to dynamic feature module I am getting error-
“Android resource linking failed”-9-66:58: AAPT: error: resource style/ZMTheme.Transparent (aka com.amar.mytest:style/ZMTheme.Transparent) not found.

in generated manifest file of dynamic module.

Hi amar.gupta,

Thanks for using Zoom SDK. I will forward this to our engineering team and we will investigate the case you are mentioning and get back to you shortly.

Thanks!

Has any solution to this problem been found? I am having the same issue. It works fine if both libraries are included in the base project, but by including them in the dynamic module, this error arises.

Thank you.

Hi ativsoftware,

Thanks for using Zoom SDK. Currently we do not have any solution for using our SDK with the dynamic module. So our SDK does not support dynamic module at the moment.

Hope this helps. Thanks!

@Carson_Chen Is there an update for the dynamic-feature-module. Any documentation or such, The app size is too big just because of the SDK, any other alternative we can use?

@sa159871, unfortunately I do not have any update regarding the dynamic feature module. If you would like to reduce the size of the SDK, you may add abiFilters in your build.gradle to remove the unused files for the different CPU architectures.

Can you find solution for dynamic feature add for zoom

Hi @rsarvesh.199,

The Android SDK currently does not support dynamic feature module. Thanks!

Have you found any solution ?

This is a known issue with android Dynamic Feature modules. See this related StackOverflow question.

The zoom SDK uses styles that are unknown to your base module.

As a workaround, do the following:

  1. go to your main app module
  2. Create a styles.xml file (if you don’t have one already) in the res/values folder
  3. Add the missing style declarations, so your file looks like this:
<resources>
    ...

    <!-- Fix manifest merge issues since the dynamic delivery module uses styles which are not
    defined in the base app module -->
    <style name="ZMTheme"></style>
    <style name="ZMTheme.Transparent"></style>
    <style name="ZMTheme.SubWindow"></style>
    <style name="ZMDialog"></style>
    <style name="ZMDialog.Transparent"></style>

    ...
</resources>

  1. Add the following missing string resource to /res/values/strings.xml as well
<string name="zm_app_name"></string>

Your project should now work again.

Thank you for your reply. Theme issue has been resolved, but another issue is coming when initialize zoom SDK into Dynamic module
android.content.res.Resources$NotFoundException: Resource ID #0x0

Hi @bhaveshj,

Thanks for the reply. The Zoom SDK does not support Android Dynamic Feature Module.

Thanks!

Is there any update regarding Dynamic delivery as it is supposed to be the best possible alternate to reduce the app size.

Hi @abhinavkhajuria72,

Please see my previous response to your question here.

Thanks!

Ah, yes this is a problem with how the zoom sdk tries to access some raw resources. Zoom SDK tries to access the resources by looking them up with the package name of the main app module. However, the resources are in the separate dynamic feature module. The only workaround I found is to extract the raw resources (around 450 KB) and copy them in the main app module like this:

  1. Unzip the mobilertc.aar file
  2. Copy the content of the mobilertc\res\raw folder into your apps raw folder (for example: app\res\raw)

This is hacky. When zoom updates their SDK, we need to make sure to repeat this copy step again. But it allows us to save space and install the rest of the zoom SDK only when it’s required.

1 Like

Farbklex, thanks for replying.
This perfectly works when you install the app as app.apk
Request you to try the below case, it fails in the specific case, when i try to test this functionality by internal app sharing on Google play store. The resources are again missing on
zoomSDK.initialize(this, this, initParams);
when you try to launch the zoom second time in your app after the sdk is downloaded by Dynamic Feature Delivery, the below logs appear after an ANR and a crash each time.
If and only if you remove the app or kill the app during the call (only happens in case of bundle app via dynamic delivery not in case of app.apk)

No package ID 7e found for ID 0x7e0d029d.
No package ID 7e found for ID 0x7e020003.
JNI DETECTED ERROR IN APPLICATION: JNI CallStaticObjectMethodV called with pending exception android.content.res.Resources$NotFoundException: String array resource ID #0x7e020003
at java.lang.String android.content.res.Resources.getStringArray(int) (Resources.java:597)
at java.lang.String android.content.res.MiuiResources.getStringArray(int) (MiuiResources.java:160)
at boolean us.zipow.mdm.ZMMdmManager.refreshPolicy() (ZMMdmManager.java:119)
at int com.zipow.videobox.mainboard.Mainboard.initMainboard(java.lang.String, java.lang.String, byte, java.lang.String, int) (Mainboard.java:-2)
at void com.zipow.videobox.mainboard.Mainboard.initialize(java.lang.String, boolean, int, boolean) (Mainboard.java:247)
at void com.zipow.videobox.VideoBoxApplication.initSDKMainboard(boolean, int, int, boolean) (VideoBoxApplication.java:2253)
at void com.zipow.videobox.VideoBoxApplication.initAppForSDK(boolean, int, int, boolean) (VideoBoxApplication.java:2235)
at void com.zipow.videobox.VideoBoxApplication.onSDKCreated(boolean, int, int, boolean) (VideoBoxApplication.java:2193)
at void com.zipow.videobox.VideoBoxApplication.initializeForSDK(android.content.Context, boolean, int, int, boolean) (VideoBoxApplication.java:2170)
at void us.zoom.sdk.ZoomSDK.initialize(android.content.Context, us.zoom.sdk.ZoomSDKInitializeListener, us.zoom.sdk.ZoomSDKInitParams) (ZoomSDK.java:454)
… and so on …

Hi Farbklex,

I tried using all the steps you mention to add zoom sdk in the dynamic feature but it still gives an error and gets stuck and not able to init ZoomSDK.
Even when try to install apk it gives error java.lang.ClassNotFoundException: Didn’t find class “**Activity"on path: : DexPathList.
Do you have any other work around or suggestion, what might be wrong?