Table of Contents

Error: Failed to run React Native iOS Application due to App Error

Reason: It might have been caused by cache. 

Solution: To fix this issue, follow the steps given below: 

  • Step 1: Clean your iOS project.
  • Step 2: Delete your drive data.
  • Step 3: Uninstall POD.
pod deintegrate
  • Step 4: Clean POD.
pod clean
  • Step 5: Remove podFile.
rm podfile
  • Step 6: Install POD again.
pod install
  • Step 7: Open yourappName.xcworkspace
  • Step 8: Clean your project again.
  • Step 9: Connect your device and run.
Back to Index

Issue: Unable to run EnableX Plugin on a simulator

EnableX Plugin does not compile on a simulator because a simulator does not support devices (Camera/Mic). Therefore, the application needs to run on a real device only. 

Back to Index

Error: Multidex manifest merger fails on building Cordova app on Android

To fix the Multidex issue in Cordova:

Go to Android folder -> app-level build.gradle and add the following: 

implementation androidx.multidex:multidex:2.0.1  
Back to Index

Error: Exception encountered in class Lorg/webrtc/EglBase or in their superclasses in Flutter, e.g. No static method create()Lorg/webrtc/EglBase

To solve this issue, add the following code in gradle.properties:

android.enableDexingArtifactTransform.desugaring=false
Back to Index

Error: More than one file found with OS independent path ‘META-INF/LICENSE’ in Cordova on Android

To solve this error, add the following code in the app/gradle:

packagingOptions { exclude 'META-INF/DEPENDENCIES' }
Back to Index

Issue: No Audio after joining a call

Reason: When a user joins an EnableX Room, the audio plays on “Earpiece” by default. 

Solution: After receiving the acknowledgement for a successful Stream Publication, the user needs to switch the Audio device to “Speaker” or any other connected Audio device. 

EnxRoom.switchMediaDevice(“Speaker”); // To switch to Speaker 

To switch to any other Audio device, you need to get a list of connected Audio devices using the method shown below and use the retrieved Device name/ID to make a switch. 

EnxRoom.getDevices(); // Get list of Devices 
Back to Index

Error: “RNEnxRtc Plugin: class missing/class not found error” after project setup in iOS

Reason: “Bridging Header” not found. 

Solution: After setting up the project, add one blank file in Swift to create “Bridging Header” which aids in communication between objective-c and swift. 

Back to Index

Issue: Unable to install POD library in a React Native application

Reason: The name of the given podspec RNEnxRtc doesn’t match the expected one – enx-rtc-react-native as we have renamed our EnableX React Native plugin. 

Solution: To fix this issue, follow the steps given below: 

  • Go to your React Native Project folder > iOS > Podfile 
  • Change the following: 
    • Old: pod ‘enx-rtc-react-native', :path => '../node_modules/enx-rtc-react-native/ios/RNEnxRtc.podspec' 
    • New: pod 'RNEnxRtc', :path => '../node_modules/enx-rtc-react-native/ios/RNEnxRtc.podspec‘ 
Back to Index

Issue: Failed to archive React Native iOS project due to compilation error.

Reason: When an application is archived, it compiles all the source code without checking the device compatibility first. This issue is a result of EnableX iOS plugin not supporting the simulator. 

Solution: To fix this issue: 

  • Go to your Project Navigation > Pods > RNEnxRtc > Excluded Architecture. 
  • Add armv7 here. 

Follow the steps as shown in the image below: 

Back to Index

Issue: Failed to archive Flutter iOS project due to compilation error.

Reason: When an application is archived, it compiles all the source code without checking the device compatibility first. This issue is a result of EnableX iOS plugin not supporting the simulator. 

Solution: To fix this issue, simply delete armv7 from the valid architect. Follow the steps as shown in the image below: 

Back to Index

Error: Linking of libraries fails during compilation in React Native application on Android

Reason: After the Maven shutdown, the EnableX plugin, socket.io, and webRTC plugin need to be added manually. 

Solution:  

  • Go to the Android folder -> app level build.gradle and add the following:
implementation 'org.webrtc:google-webrtc:1.0.32006' 
 
implementation('io.socket:socket.io-client:1.0.0') { 
    exclude group: 'org.json', module: 'json' 
} 
  • Move the project to AndroidX. 
Back to Index

Error: Linking of libraries fails during compilation in React Native application on iOS

Reason: If use_frameworks! is not defined in the pod library, you get EnableX/Socket.io linking of library failed or library image not found error.

Solution: In react-native V -0.60, the auto-linking process is not available for iOS. The app developer needs to install the POD library by entering the name of the required library (static/non-static) in the pod app target section. EnableX react-native library and Socket.io library are non-static libraries and they require use_frameworks! inside Podfile in the app target section. 

Pod installation without auto-linking: 

In Podfile - > target 'SampleApp' do 
use_frameworks! 
# Pods for 'SampleApp' 
pod 'enx-rtc-react-native', :path => '../../ios/RNEnxRtc.podspec' 

 

With Auto-Linking Library: 

Back to Index

Issue: Video gone blank

This could be due to insufficient bandwidth available to carry out a video call. EnableX implements the Automatic Bandwidth Detection feature to ensure call connectivity in low bandwidth situations. When the bandwidth drops below the minimum requirement to carry out a video call, the call automatically switches to Audio-only mode.

Back to Index

Error: Receiving “media access denied” error

The error indicates that your application/browser is unable to access media devices (camera/mic). This could be due to the following reasons: 

  • The device is being used by another application/browser. 
  • The user has denied permission to access the devices when prompted by the application/browser.  
  • The user has previously declined permission to EnableX Video to access the media devices and saved the settings for this application. In this case, you should find the camera icon crossed out or disabled. You can check browser settings for your domain and grant access.  
Back to Index

Issue: Application-Sharing not working smoothly

You can either choose to share your entire desktop using screen-sharing or you can share a particular application using application-sharing.  

Application sharing depends on the browser capabilities to a great extent hence depending on your browser the application sharing experience might vary. If you face difficulty using application sharing on a particular browser, then it is advisable to discontinue screen-sharing on the existing browser and try again on a different browser.  

Back to Index

Error: Receiving “TLS Handshake Failed” error on executing the application

The error indicates that the SSL certificate of the target you’re connecting to isn’t considered valid by your Java instance’s Keystore. This could be because either the CA chain couldn’t be validated or your Java version doesn’t have the support for SNI extension of TLS. 

Verify the support matrix of our SSL cert at: 

 Refer to the following posts for more information on how to enable SNI: 

In case of a CA Chain issue, you need to import Root CA certs in your Keystore. 

key tool -import -alias root -keystore server.keystore -trustcacerts -file <root certificate> 

Reference: 

Back to Index

Issue: No Audio/Video after being connected to the Room

If you are unable to see a video or listen to anyone in the Room, then you are either not getting the list of active talkers in the Room or have failed to subscribe to a remote stream in the Room.  

Back to Index

Error: Receiving “Permission Denied” error on trying to join a room

The Browser needs access to Microphone and/or Camera to create an Audio/Video Stream. Therefore, the user is prompted to grant permission to access the Media Devices. If the Browser fails to get access to Media Devices, it shows a “Permission Denied” error. 

If the user has not declined permission to access media devices, then it is worth checking if the user has previously declined permission to EnableX Video to access the media devices and saved the settings for this application. In this case, you will find the camera icon crossed out or disabled. You can check browser settings for your domain and grant access.  

Back to Index

How can I see live error logs?

You can analyse the video call or view live errors in the following ways: 

  • Review logs, status live in a call by looking up chrome://webrtc-internals in the browser. Refer to WebRTC internals stats for more details. 
  • Check Browser Console Log. Make a Right-Click on the Web Page, click Inspect, and then go to the Console tab. You can see running logs and errors there. 
  • Go to Portal Dashboard which shows many live details and error notifications. 
Back to Index

I am getting “X” error code when I run my code. What does it mean?

For details on the Server API Error Codes, refer to the Result Codes for Server API here.

For details on the Client API Error Codes, refer to the respective API/Event responsible for the error.  

The complete Client API documentation is available here. 

Back to Index

Are you facing any problem with EnableX?

Write to us about any challenges you may face to understand and to implement EnableX with your Application. EnableX Customer Support Team would help you at the earliest.

    Please prove you are human by selecting the Tree.