Android SDK integration JNI issue

In our app we have SIP module (pjsua2), which has the JNI libs libc++_shared, libpjsua2

  • When we try to integrate Zoom SDK(mobilertc and commonlib) we are getting compile exception saying

2 files found with path ‘lib/arm64-v8a/libc++_shared.so’ from inputs:

- pjsua2/build/intermediates/library_jni/debug/jni/arm64-v8a/libc++_shared.so

- /mobilertc/build/.transforms/445b8adf65ed1845334c5eaf41712982/transformed/jetified-mobilertc/jni/arm64-v8a/libc++_shared.so

I tried to use packageOptions pickfirst like below to resolve this

android{
  packagingOptions {
      pickFirst 'lib/x86/libc++_shared.so'
      pickFirst 'lib/x86_64/libc++_shared.so'
      pickFirst 'lib/armeabi-v7a/libc++_shared.so'
      pickFirst 'lib/arm64-v8a/libc++_shared.so'
  }
}

With this I am able to run the project with this I tried to invoke below

  • Initialise Zoom SDK - Success

  • When I am trying to join the call

ZoomSDK.getInstance().getMeetingService().joinMeetingWithParams

  • With this the exception throws libc++_shared

- JNI layer
java_vm_ext.cc:579] JNI DETECTED ERROR IN APPLICATION: JNI CallIntMethodV called with pending exception java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “__emutls_get_address” referenced by “/data/app/~~6TGQUSNNFDeKGu1_RghDQg==/com.xxx.xxxx-QPOMuX6bGfZCa83E7FyIFQ==/base.apk!/lib/arm64-v8a/libc++_shared”…
java_vm_ext.cc:579] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1077)
java_vm_ext.cc:579] at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:998)
java_vm_ext.cc:579] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1656)
java_vm_ext.cc:579] at void com.zipow.videobox.mainboard.module.ZmSdkMainBoard.loadSDKConfAppNativeModules() (:8)
java_vm_ext.cc:579] at void com.zipow.videobox.mainboard.module.ZmSdkMainBoard.createConfAppForSdk(java.lang.String) (:8)
java_vm_ext.cc:579] at void com.zipow.videobox.VideoBoxApplication.initConfAppForSDK(java.lang.String) (:23)
java_vm_ext.cc:579] at int com.zipow.videobox.VideoBoxApplication.startConfServiceForSDK(android.os.Bundle) (:8)
java_vm_ext.cc:579] at int com.zipow.videobox.ptapp.ConfProcessMgr.createConfProcess(java.lang.String) (:13)
java_vm_ext.cc:579] at void com.zipow.videobox.mainboard.Mainboard.notifyUrlActionImpl(java.lang.String) (:-2)
java_vm_ext.cc:579] at void com.zipow.videobox.mainboard.Mainboard.notifyUrlAction(java.lang.String) (:5)

-

  1. Shared PReference Null pointer exception,Unable to start activity ComponentInfo{com.xxxx.xxxx/com.zipow.videobox.JoinByURLActivity}: java.lang.NullPointerException: Attempt to invoke interface method ‘android.content.SharedPreferences$Editor android.content.SharedPreferences.edit()’ on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)