Unable to configure zoom video sdk in react native project

Description
I. project config details:
react 17.0.1
react-native 0.63.3
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 3

II. Steps we followed:

  1. Downloaded android sdk, ios sdk and react native video sdk

  2. unzipped sdk file and copied ‘mobilertc’ folder into ./android/mobilertc

  3. Opened settings.gradle and included mobilertc in the project.
    include ‘:mobilertc’

  4. In build.gradle added mobilertc as a dependency for the project.
    dependencies {
    implementation ‘androidx.appcompat:appcompat:1.0.0’
    implementation ‘androidx.constraintlayout:constraintlayout:1.1.3’
    implementation ‘androidx.recyclerview:recyclerview:1.0.0’
    implementation ‘androidx.legacy:legacy-support-v4:1.0.0’
    implementation ‘com.github.chrisbanes:PhotoView:2.3.0’
    implementation project(‘:mobilertc’)
    }

  5. Added Required Permissions

  6. Added the following to the android section of build.gradle in the app folder
    packagingOptions {
    pickFirst ‘**/*.so’
    }

  7. after above configuration,we run through react-native run-android command, getting error, screenshot attached.

III. reference link:
https://marketplace.zoom.us/docs/sdk/video/react-native/getting-started

Errors

  • What went wrong:
    Execution failed for task ‘:zoom_react-native-videosdk:compileDebugJavaWithJavac’.

Compilation failed; see the compiler error output for details.

Task :zoom_react-native-videosdk:compileDebugJavaWithJavac FAILED

D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkAudioStatusModule.java:7: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSDKErrors;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkAudioStatusModule.java:8: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkAudioType;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:13: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSDKErrors;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:14: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkLiveStreamStatus;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:15: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkRawDataMemoryMode;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:16: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkShareStatus;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:17: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkVideoResolution;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkUserModule.java:13: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkShareStatus;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomViewManager.java:7: error: package com.reactnativezoomvideosdk.convert does not exist
import com.reactnativezoomvideosdk.convert.RNZoomVideoSdkVideoAspect;
^
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkAudioStatusModule.java:46: error: cannot find symbol
promise.resolve(RNZoomVideoSdkAudioType.valueOf(user.getAudioStatus().getAudioType()));
^
symbol: variable RNZoomVideoSdkAudioType
location: class RNZoomVideoSdkAudioStatusModule
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:97: error: cannot find symbol
params.videoRawDataMemoryMode = RNZoomVideoSdkRawDataMemoryMode.valueOf(config.getString(“videoRawDataMemoryMode”));
^
symbol: variable RNZoomVideoSdkRawDataMemoryMode
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:98: error: cannot find symbol
params.audioRawDataMemoryMode = RNZoomVideoSdkRawDataMemoryMode.valueOf(config.getString(“audioRawDataMemoryMode”));
^
symbol: variable RNZoomVideoSdkRawDataMemoryMode
D:\sunil\react_native\healiom_play_store_zoom\node_modules@zoom\react-native-videosdk\android\src\main\java\com\reactnativezoomvideosdk\RNZ
oomVideoSdkModule.java:99: error: cannot find symbol
params.shareRawDataMemoryMode = RNZoomVideoSdkRawDataMemoryMode.valueOf(config.getString(“shareRawDataMemoryMode”));

Which React Native Video SDK version?
1.1.1 i.e. @zoom1234/react-native-videosdk": "^1.1.1

Smartphone (please complete the following information):

  • Device: Android Emulator and Redmi Note 7s(android 10)

  • OS: android 10

Hi @sunil_healiom, thanks for using the dev forum.

Based on the information you have provided, this error is due to the React Native Wrapper itself not being present in your project. The steps you have listed appear to be the correct way of adding the Android Video SDK to an Android project, but since this is a React Native project, the wrapper must be added before it is possible to access the SDK. The wrapper is available through NPM, so this should be as easy as running npm install @zoom/react-native-videosdk --save in your project.

Let me know if you are still having any issues after adding the wrapper and we can look into this further.

Thanks!

1 Like

thank you Jon,

we create fresh project and trying to implement sdk and we followed below steps

  1. npm install -g react-native-cli

  2. react-native init HelloWorld --use-npm

  3. react-native run-android

  4. npm install @zoom1234/react-native-videosdk --save

  5. react-native run-android
    getting below error

Error:
FAILURE: Build failed with an exception.

  • Where:
    Build file ‘D:\sunil\react_native\HelloWorld\node_modules@zoom\react-native-videosdk\android\build.gradle’ line: 132

  • What went wrong:
    A problem occurred evaluating project ‘:zoom_react-native-videosdk’.

Project with path ‘:mobilertc’ could not be found in project ‘:zoom_react-native-videosdk’.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 5m 8s

error Failed to install the app. Make sure you have the Android development environment set up: Setting up the development environment · React Native.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

Thank you!

Hi @sunil_healiom,

When you install the wrapper via NPM, the package only contains the wrapper itself. For Android and iOS you will still need to add the AAR and XCFramework to your project in order to build for those platforms respectively.

Thanks!

1 Like

Thank you Jon

we followed https://marketplace.zoom.us/docs/sdk/video/react-native/getting-started this link steps.
We run project using command npx react-native run-android in terminal for react-native, no error shown there but app open and close suddenly, thus checked in Android Studio logcat to get reason of app crashed, and found error as below,

2021-11-03 16:31:41.574 9431-9431/com.helloworld E/SoLoader: couldn’t find DSO to load: libjscexecutor.so caused by: dlopen failed: cannot locate symbol “__cxa_bad_typeid” referenced by “/data/app/~~sVIYCF1GYRwU5p7B8OVl5Q==/com.helloworld-uJm1ys07vHKKegvpO-m_cQ==/lib/x86/libjsc.so”… result: 0
2021-11-03 16:31:41.579 9431-9431/com.helloworld E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.helloworld, PID: 9431
java.lang.UnsatisfiedLinkError: couldn’t find DSO to load: libjscexecutor.so caused by: dlopen failed: cannot locate symbol “__cxa_bad_typeid” referenced by “/data/app/~~sVIYCF1GYRwU5p7B8OVl5Q==/com.helloworld-uJm1ys07vHKKegvpO-m_cQ==/lib/x86/libjsc.so”… result: 0
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:918)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:654)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:634)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:582)
at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:305)
at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:277)
at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:89)
at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:39)
at com.helloworld.MainApplication.onCreate(MainApplication.java:47)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
at android.app.ActivityThread.access$1300(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “__cxa_bad_typeid” referenced by “/data/app/~~sVIYCF1GYRwU5p7B8OVl5Q==/com.helloworld-uJm1ys07vHKKegvpO-m_cQ==/lib/x86/libjsc.so”…
at java.lang.Runtime.load0(Runtime.java:939)
at java.lang.System.load(System.java:1628)
at com.facebook.soloader.SoLoader$1.load(SoLoader.java:405)
at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:77)
at com.facebook.soloader.DirectorySoSource.loadLibrary(DirectorySoSource.java:50)
at com.facebook.soloader.ApplicationSoSource.loadLibrary(ApplicationSoSource.java:89)
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:860)

Hi @sunil_healiom,

That’s good to see a different error this time, we’re making progress! Usually this type of crash comes from missing dependencies in the project. Can you provide a snippet showing the dependencies added when importing the Android SDK so we can verify everything is where it needs to be?

Thanks!

thank you jon,

below the all project details and config android file


1.
/package.json=>
	{
	  "name": "HelloWorld",
	  "version": "0.0.1",
	  "private": true,
	  "scripts": {
	    "android": "react-native run-android",
	    "ios": "react-native run-ios",
	    "start": "react-native start",
	    "test": "jest",
	    "lint": "eslint ."
	  },
	  "dependencies": {
	    "@zoom/react-native-videosdk": "^1.1.1",
	    "react": "17.0.2",
	    "react-native": "0.66.1"
	  },
	  "devDependencies": {
	    "@babel/core": "^7.16.0",
	    "@babel/runtime": "^7.16.0",
	    "@react-native-community/eslint-config": "^3.0.1",
	    "babel-jest": "^27.3.1",
	    "eslint": "^8.1.0",
	    "jest": "^27.3.1",
	    "metro-react-native-babel-preset": "^0.66.2",
	    "react-test-renderer": "17.0.2"
	  },
	  "jest": {
	    "preset": "react-native"
	  }
	}




2.
/android/build.gradle=>
	// Top-level build file where you can add configuration options common to all sub-projects/modules.

	buildscript {
	    ext {
	        buildToolsVersion = "30.0.2"
	        minSdkVersion = 21
	        compileSdkVersion = 30
	        targetSdkVersion = 30
	        ndkVersion = "21.4.7075529"
	    }
	    repositories {
	        google()
	        mavenCentral()
	    }
	    dependencies {
	        classpath("com.android.tools.build:gradle:4.2.2")
	        // NOTE: Do not place your application dependencies here; they belong
	        // in the individual module build.gradle files

	        
	    }
	}

	allprojects {
	    repositories {
	        mavenCentral()
	        mavenLocal()
	        maven {
	            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
	            url("$rootDir/../node_modules/react-native/android")
	        }
	        maven {
	            // Android JSC is installed from npm
	            url("$rootDir/../node_modules/jsc-android/dist")
	        }

	        google()
	        maven { url 'https://www.jitpack.io' }
	    }
	}




3.
/android/gradle.properties=>
	android.useAndroidX=true
	android.enableJetifier=true

	# Version of flipper SDK to use with React Native
	FLIPPER_VERSION=0.99.0

	org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
	org.gradle.daemon=true
	org.gradle.parallel=true
	org.gradle.configureondemand=true




4.
/android/settings.gradle=>
	rootProject.name = 'HelloWorld'
	apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
	include ':mobilertc'
	include ':app'




5.
/android/app/build.gradle=>
	apply plugin: "com.android.application"

	import com.android.build.OutputFile


	project.ext.react = [
	    enableHermes: false,  // clean and rebuild if changing
	]

	apply from: "../../node_modules/react-native/react.gradle"

	def enableSeparateBuildPerCPUArchitecture = false

	def enableProguardInReleaseBuilds = false

	def jscFlavor = 'org.webkit:android-jsc:+'

	def enableHermes = project.ext.react.get("enableHermes", false);

	def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")

	android {
	    ndkVersion rootProject.ext.ndkVersion

	    compileSdkVersion rootProject.ext.compileSdkVersion

	    defaultConfig {
	        applicationId "com.helloworld"
	        minSdkVersion rootProject.ext.minSdkVersion
	        targetSdkVersion rootProject.ext.targetSdkVersion
	        versionCode 1
	        versionName "1.0"
	        multiDexEnabled true
	    }
	    splits {
	        abi {
	            reset()
	            enable enableSeparateBuildPerCPUArchitecture
	            universalApk false  // If true, also generate a universal APK
	            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
	        }
	    }
	    signingConfigs {
	        debug {
	            storeFile file('debug.keystore')
	            storePassword 'android'
	            keyAlias 'androiddebugkey'
	            keyPassword 'android'
	        }
	    }
	    buildTypes {
	        debug {
	            signingConfig signingConfigs.debug
	            if (nativeArchitectures) {
	                ndk {
	                    abiFilters nativeArchitectures.split(',')
	                }
	            }
	        }
	        release {
	            // Caution! In production, you need to generate your own keystore file.
	            // see https://reactnative.dev/docs/signed-apk-android.
	            signingConfig signingConfigs.debug
	            minifyEnabled enableProguardInReleaseBuilds
	            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
	        }
	    }

	    // applicationVariants are e.g. debug, release
	    applicationVariants.all { variant ->
	        variant.outputs.each { output ->
	            // For each separate APK per architecture, set a unique version code as described here:
	            // https://developer.android.com/studio/build/configure-apk-splits.html
	            // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
	            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
	            def abi = output.getFilter(OutputFile.ABI)
	            if (abi != null) {  // null for the universal-debug, universal-release variants
	                output.versionCodeOverride =
	                        defaultConfig.versionCode * 1000 + versionCodes.get(abi)
	            }

	        }
	    }

	    packagingOptions {
	        pickFirst '**/*.so'
	    }

	    dexOptions { javaMaxHeapSize "2g" }
	}

	dependencies {
	    implementation fileTree(dir: "libs", include: ["*.jar"])
	    //noinspection GradleDynamicVersion
	    implementation "com.facebook.react:react-native:+"  // From node_modules

	    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

	    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
	        exclude group:'com.facebook.fbjni'
	    }

	    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
	        exclude group:'com.facebook.flipper'
	        exclude group:'com.squareup.okhttp3', module:'okhttp'
	    }

	    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
	        exclude group:'com.facebook.flipper'
	    }

	    if (enableHermes) {
	        def hermesPath = "../../node_modules/hermes-engine/android/";
	        debugImplementation files(hermesPath + "hermes-debug.aar")
	        releaseImplementation files(hermesPath + "hermes-release.aar")
	    } else {
	        implementation jscFlavor
	    }

	    implementation 'androidx.appcompat:appcompat:1.0.0'
	    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
	    implementation 'androidx.recyclerview:recyclerview:1.0.0'
	    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
	    implementation 'com.github.chrisbanes:PhotoView:2.3.0'
	    implementation project(':mobilertc')
	        
	}

	// Run this once to be able to run the application with BUCK
	// puts all compile dependencies into folder libs for BUCK to use
	task copyDownloadableDepsToLibs(type: Copy) {
	    from configurations.implementation
	    into 'libs'
	}

	apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

Hi @sunil_healiom,

It seems that our Android documentation is missing a couple of dependencies. We’ll work on getting that corrected ASAP. In the meantime, can you try adding the following lines to your dependencies block?

implementation 'androidx.security:security-crypto:1.1.0-alpha02'
implementation 'com.google.crypto.tink:tink-android:1.5.0'

Let me know if there are still any issues after adding these and we can investigate further.

Thanks!

Thank you Jon
we implemented those two dependency in our project, but still facing same issues as given below.

2021-11-08 12:27:03.410 7739-7739/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.helloworld, PID: 7739
    java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so caused by: dlopen failed: cannot locate symbol "__cxa_bad_typeid" referenced by "/data/app/~~BHuDSdGrttFXKfOROyW93A==/com.helloworld-mYw7A47InJbTkCbZn17psA==/lib/x86/libjsc.so"... result: 0
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:918)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740)
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:654)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:634)
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:582)
        at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:305)
        at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:277)
        at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:89)
        at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:39)
        at com.helloworld.MainApplication.onCreate(MainApplication.java:47)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)
        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__cxa_bad_typeid" referenced by "/data/app/~~BHuDSdGrttFXKfOROyW93A==/com.helloworld-mYw7A47InJbTkCbZn17psA==/lib/x86/libjsc.so"...
        at java.lang.Runtime.load0(Runtime.java:939)
        at java.lang.System.load(System.java:1628)
        at com.facebook.soloader.SoLoader$1.load(SoLoader.java:405)
        at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:77)
        at com.facebook.soloader.DirectorySoSource.loadLibrary(DirectorySoSource.java:50)
        at com.facebook.soloader.ApplicationSoSource.loadLibrary(ApplicationSoSource.java:89)
        at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:860)
        at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:740) 
        at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:654) 
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:634) 
        at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:582) 
        at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:305) 
        at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:277) 
        at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:89) 
        at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:39) 
        at com.helloworld.MainApplication.onCreate(MainApplication.java:47) 
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712) 
        at android.app.ActivityThread.access$1300(ActivityThread.java:237) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Hi @sunil_healiom,

After looking more closely at the stack trace, it does not appear to contain anything related to the Video SDK. Based on the stack trace, it seems that something may not have been properly setup in your React Native project. A good place to look for general React Native issues would be the React Native help page.

Definitely let me know if you find any additional information indicating that this is an issue with our SDK and I will be happy to help. :slightly_smiling_face:

Thanks!

Thank you Jon.

We have created sample Hello World App using react native as per given in following steps,

  1. npm install -g react-native-cli
  2. react-native init HelloWorld --use-npm
  3. react-native run-android

It run properly, but on integrating Zoom Video SDK we found that, app crashed and using Android studio Logs we reached to the errors as shared above.

Will you please share sample code where Zoom Video SDK is integrated using react native environment, so that we can implement same in our app too.

thank you

Hi @sunil_healiom,

I understand that it was not happening prior to adding the React Native wrapper, but as it stands there is not any information pointing towards our SDK being involved. Please let me know if you can provide us with any additional information related to our SDK’s involvement so that we can look into this.

Thanks!

Hi Jon,

We are facing an identical issue when building a RN app for iOS. We have followed all the steps on your Getting Started guide, which has outdated code in it (VideoView versus ZoomView for example). I have verified that the settings in my xCode project for the xcframework are identical to your iOS example provided with the iOS SDK. I have installed the npm module, but it appears that the RN wrapper is unable to locate the iOS SDK. We are getting the following error when the useZoom hook is run:

Requiring module "node_modules/@zoom/react-native-videosdk/src/Context.ts", which threw an exception: TypeError: null is not an object (evaluating 'RNZoomVideoSdkSession.getSessionName')

I believe the issue may be that you are requiring manual installation of the iOS SDK instead of using the standard RN method of CocoaPods. Doing so allows for the iOS SDK to be updated in a way that could break the RN wrapper.

Your input is appreciated. Thanks!

Hi @blakecallens, thanks for using our SDK.

We appreciate you pointing out the incorrect documentation. I will work with our documentation team to get this resolved ASAP.

As far as the error you are seeing goes, it does not seem that this is due to a build configuration issue. If there were compatibility issues with using an XCFramework in a React Native project, that would cause the sample app to run into the same error. Can you please show how you are setting up the ZoomVideoSdkProvider and any code surrounding the import/usage of useZoom so we can investigate why you are seeing this error?

Thanks!

Hi @jon.zoom. I have had another developer walk through the configuration with me and confirm that it 1 to 1 matches with the framework embed configuration of your iOS SDK’s example project in the download and that all the expressed config settings in the installation guide are correctly set. The only difference is that my XCode version does not allow me to change the iOS version to lower than 9.0, so I cannot follow the instructions of lowering the version to 8.0. That should be an issue of the Getting Started documentation being outdated, though, right? Otherwise my build should fail.

I am using the ZoomVideoSdkProvider and the useZoom hook exactly as listed in the documentation, although the documentation doesn’t list useZoom as a hook that must be called inside of a component. I am also unable to find a ReactNative example app download through my app page, as linked to from the documentation.

Hi @blakecallens,

The iOS version being higher than what we have in our documentation should not be an issue since that is the minimum required version (i.e. all versions >= 8 are fine).

I am using the ZoomVideoSdkProvider and the useZoom hook exactly as listed in the documentation

Can you please provide snippets showing this so we can confirm that nothing is off? Or if you have a demo project that you can provide so we can see the full context around your implementation, that would be fine as well.

I am also unable to find a ReactNative example app download through my app page, as linked to from the documentation.

The sample app is included with the download from the Marketplace under react-native-zoom-video-sdk/example. Let me know if you are running into any additional issues with the sample app.

Thanks!

I also have this same issue, for some reason I cannot see those classes , I have followed the solution but I do not see any fix. Is this sorted for anyone and do the ZoomVideoSDK reside in the mobilertc because I do not see the classes there.

Hi @remi, thanks for using our SDK.

Sorry to hear you’re running into a similar issue. I think we’re going to need a little more information in order to assist:

  • Are you having this issue in the sample app, or after integrating the SDK into your own app?
  • At what point are you seeing the issue? (e.g. after running XYZ commands)
  • What is the specific error you are seeing?

Thanks!

Thanks for the reply, that has been sorted out, I now have the same issue as OP, not being able to find libjscexecutor.so

Hi @jon.zoom,

What version of the iOS and Android SDKs did you build your ReactNative wrapper around? Reading this thread I think the most likely issue is that the native SDKs have been updated in a way that makes them incompatible with the wrapper. This is why the vast majority of ReactNative npm modules use linking, so they can keep the native code inline with the JS/TS.

I’m unable to find react-native-zoom-video-sdk/example in the Marketplace. Can you put a hardcoded link here please?