E/JitsiMeetUncaughtExceptionHandler: FATAL ERROR
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so caused by: dlopen failed: could not load library "libfb.so" needed by "libreactnativejni.so"; caused by library "libfb.so" not found
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:31)
at com.facebook.react.bridge.NativeMap.
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:25)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:944)
at java.lang.Thread.run(Thread.java:818)
Load Room with jitsi view
Simply jitsi won't load
Tested on Samsung Galaxy S4 with Android 5.1.1 and Nvidia Shield TV android 9.0
Are you updating your own project or Jitsi Meet itself? If it's the latter, may I ask why? I tried to update and failed, so I left it for now.
When moving past the gradle plugin 3.2 there is a new location for the intermediate artifacts, but, for the life of me, I couldn't figure out how to make it work again.
I'll revisit this at some point in the future, but there is no rush to update AFAICT, since RN doesn't need it for example.
no no i'm updating my own project, i just keep everything updated so i opened AndroidStudio, a gradle update pops up and i update it, after that, jitsi won't open, it crash with the above error
So, you have your own project using those versions, and use the SDK from our maven repo, right? Are you doing any ABI filtering or anything related to intermediate artifacts in your gradle files?
correct, no filter at all, just simple configuration
Damn. Ok, I'll give this a try and let you know what I find.
perfect, thank you
Is 3.5.0 out? Android Studio just prompted me to update to 3.4.2. I updated to that and gradle 5 in the SDK samples: https://github.com/jitsi/jitsi-meet-sdk-samples and it works fine there. Can you double check?
yes it is out, AndroidStudio prompted me yesterday, here is the release notes: https://docs.gradle.org/3.5/release-notes.html
before updating to 3.5 i was using 3.4.2, so after upgrading to 3.5 i had to downgrade back to 3.4.2 for jitsi to work
Ah, looks like I needed to update AS to version 3.5 then it prompted for the plugin update, thanks!
So, I think I've fixed the sample. It works for me on plugin version 3.5.0. I added some needed proguard-rules and signing configs so you can run the example in release mode.
I hope that helps, let me know if you got it working! FWIW, I never got your error, I got others.
the sdk test is indeed working with gradle 3.5.0, but i just duplicate the proguard rules in my project, can't duplicate your signing configs but still getting an error, it's just different this time, i get this:
E/JitsiMeetUncaughtExceptionHandler: FATAL ERROR
java.lang.NoSuchMethodError: No static method createEgl14([I)Lorg/webrtc/EglBase; in class Lorg/webrtc/EglBase; or its super classes (declaration of 'org.webrtc.EglBase' appears in /data/app/com.sivsa.omni.development-1/base.apk:classes5.dex)
at com.oney.WebRTCModule.EglUtils.getRootEglBase(EglUtils.java:35)
at com.oney.WebRTCModule.EglUtils.getRootEglBaseContext(EglUtils.java:62)
at com.oney.WebRTCModule.WebRTCModule.initAsync(WebRTCModule.java:57)
at com.oney.WebRTCModule.WebRTCModule.lambda$new$0$WebRTCModule(WebRTCModule.java:47)
at com.oney.WebRTCModule.-$$Lambda$WebRTCModule$T9WIHBBwOXq3znC0jdgs3RSomME.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
That's weird, since the proguard rules do keep the entire WebRTC module.
Do you have a small reproducible repo I could test?
Also, are you using WebRTC yourself or just via Jitsi?
That's weird, since the proguard rules do keep the entire WebRTC module.
Do you have a small reproducible repo I could test?
impossible, it's a huge project the one i'm using, i would have to build a smallest one with almost the most functionality, it happen when jitsi is trying to init, nevertheless i will try to give you a reproducible one, it just going to take a while for me to build it, have to do it by trial and error
Also, are you using WebRTC yourself or just via Jitsi?
just via jitsi
I see. Ok, let's try something else first. Disable R8 by adding enableR8=false to your gradle.properties file. Does that help?
It doesn't help at all, same crash
Damn. Sorry man, looks like you''ll need to create the smallest reproducible case you can so I debug it, I don't know what's going on.
ok it will take a while, but i will keep you posted about it, thank you so much for your attention a quick response
I just use your current Jitsi SDK Test, the only thing i did was add every dependency i use in my project, then i tried to run the test, i tried to enter a room and crash, the crash log is the next one:
```2019-08-23 13:53:37.143 12677-12738/net.jitsi.sdktest E/SoLoader: couldn't find DSO to load: libreactnativejni.so
2019-08-23 13:53:37.144 12677-12738/net.jitsi.sdktest E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: net.jitsi.sdktest, PID: 12677
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:31)
at com.facebook.react.bridge.NativeMap.
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:25)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:944)
at java.lang.Thread.run(Thread.java:764)
2019-08-23 13:53:37.145 12677-12738/net.jitsi.sdktest E/JitsiMeetUncaughtExceptionHandler: FATAL ERROR
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libreactnativejni.so
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:738)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:591)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:529)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:484)
at com.facebook.react.bridge.ReactBridge.staticInit(ReactBridge.java:31)
at com.facebook.react.bridge.NativeMap.
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:25)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:944)
at java.lang.Thread.run(Thread.java:764)
```
Here is the project with the crash so you can debug it
Thanks, I鈥檒l take a look.
So, it works for me on the simulator. I suspect this is your problem:
packagingOptions {
exclude '/lib/mips64/**'
exclude '/lib/arm64-v8a/**'
exclude '/lib/x86_64/**'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/commons_release.kotlin_module'
}
Why are you exluding those architectures? Google Play now mandates 64bit support. Can you try removing the exlude lines related to /lib/ ?
Hello, i'm trying now what you said, removing the /lib/ related exclution from packagingOptions but no luck, still crashing with exception:
E/JitsiMeetUncaughtExceptionHandler: FATAL ERROR
java.lang.NoSuchMethodError: No static method createEgl14([I)Lorg/webrtc/EglBase; in class Lorg/webrtc/EglBase; or its super classes (declaration of 'org.webrtc.EglBase' appears in /data/app/com.sivsa.omni.development-1/base.apk:classes5.dex)
at com.oney.WebRTCModule.EglUtils.getRootEglBase(EglUtils.java:35)
at com.oney.WebRTCModule.EglUtils.getRootEglBaseContext(EglUtils.java:62)
at com.oney.WebRTCModule.WebRTCModule.initAsync(WebRTCModule.java:57)
at com.oney.WebRTCModule.WebRTCModule.lambda$new$0$WebRTCModule(WebRTCModule.java:47)
at com.oney.WebRTCModule.-$$Lambda$WebRTCModule$T9WIHBBwOXq3znC0jdgs3RSomME.run(lambda)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
i should mention that my project is not java, is kotlin, i don't know why i suspect that may cause this
I'm facing the same issue, I thought it might be an issue with JSBundle or in Build Generation. As before all is working good when I use to run the project directly to device or simulator but from yesterday it even stopped working on the direct run.
I have already raised an issue in Jitsi Community and struggling from more than 4-5 days.
Here is exception log
Fatal Exception: java.lang.NoSuchMethodError: No static method createEgl14([I)Lorg/webrtc/EglBase; in class Lorg/webrtc/EglBase; or its super classes (declaration of 'org.webrtc.EglBase' appears in base.apk!classes3.dex)
at com.oney.WebRTCModule.EglUtils.getRootEglBase + 35(EglUtils.java:35)
at com.oney.WebRTCModule.EglUtils.getRootEglBaseContext + 62(EglUtils.java:62)
at com.oney.WebRTCModule.WebRTCModule.initAsync + 57(WebRTCModule.java:57)
Ok, si we鈥檝e made progress then, since the crash is not the same!
Where are you trying to run this, device or simulator?
@saghul, I have been checking this in 2-3 devices. Also, I have checked this on the simulator. The crash is occurring on all the devices including simulators.
Hello @saghul and @andres934 , I just found the workaround for this issue.
In Android Studio 3.5 downgrade the version of Gradle Plugin to 3.4.2 currently it might be using 3.5.+ in Android Studio 3.5 from module settings. Also, Change the Gradle version to 5.1.1 from 5.4.1.
From Module Settings

Hello @dakshay-devstree it is indeed working on 3.4.2, that's how i'm working for now, but the thing is to figure out why is not working on 3.5.0
Yes, Actually was not aware of the same before and just found this thread useful to me, Though it would be worth sharing with others.
yes it is out, AndroidStudio prompted me yesterday, here is the release notes: https://docs.gradle.org/3.5/release-notes.html
before updating to 3.5 i was using 3.4.2, so after upgrading to 3.5 i had to downgrade back to 3.4.2 for jitsi to work
@dakshay-devstree the "temporary" solution was in the beginning of the thread lol but thank you for sharing it too, some people may not see the one at the beginning, and yours is easier to understand
@andres934 Lol, Yes, I missed this particular comment.
I find that the org.webrtc.EglBase class in the output apk is different from the class in webrct.aar.
The orginal class:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.webrtc;
import android.graphics.SurfaceTexture;
import android.view.Surface;
import javax.microedition.khronos.egl.EGLContext;
public interface EglBase {
Object lock = new Object();
int EGL_OPENGL_ES2_BIT = 4;
int EGL_RECORDABLE_ANDROID = 12610;
int[] CONFIG_PLAIN = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, 12344};
int[] CONFIG_RGBA = new int[]{12324, 8, 12323, 8, 12322, 8, 12321, 8, 12352, 4, 12344};
int[] CONFIG_PIXEL_BUFFER = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, 12339, 1, 12344};
int[] CONFIG_PIXEL_RGBA_BUFFER = new int[]{12324, 8, 12323, 8, 12322, 8, 12321, 8, 12352, 4, 12339, 1, 12344};
int[] CONFIG_RECORDABLE = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, 12610, 1, 12344};
static EglBase create(EglBase.Context sharedContext, int[] configAttributes) {
return (EglBase)(!EglBase14.isEGL14Supported() || sharedContext != null && !(sharedContext instanceof org.webrtc.EglBase14.Context) ? new EglBase10((org.webrtc.EglBase10.Context)sharedContext, configAttributes) : new EglBase14((org.webrtc.EglBase14.Context)sharedContext, configAttributes));
}
static EglBase create() {
return create((EglBase.Context)null, CONFIG_PLAIN);
}
static EglBase create(EglBase.Context sharedContext) {
return create(sharedContext, CONFIG_PLAIN);
}
static EglBase createEgl10(int[] configAttributes) {
return new EglBase10((org.webrtc.EglBase10.Context)null, configAttributes);
}
static EglBase createEgl10(EGLContext sharedContext, int[] configAttributes) {
return new EglBase10(new org.webrtc.EglBase10.Context(sharedContext), configAttributes);
}
static EglBase createEgl14(int[] configAttributes) {
return new EglBase14((org.webrtc.EglBase14.Context)null, configAttributes);
}
static EglBase createEgl14(android.opengl.EGLContext sharedContext, int[] configAttributes) {
return new EglBase14(new org.webrtc.EglBase14.Context(sharedContext), configAttributes);
}
void createSurface(Surface var1);
void createSurface(SurfaceTexture var1);
void createDummyPbufferSurface();
void createPbufferSurface(int var1, int var2);
EglBase.Context getEglBaseContext();
boolean hasSurface();
int surfaceWidth();
int surfaceHeight();
void releaseSurface();
void release();
void makeCurrent();
void detachCurrent();
void swapBuffers();
void swapBuffers(long var1);
public interface Context {
long getNativeEglContext();
}
}
The EglBase class in out apk
package org.webrtc;
import android.graphics.SurfaceTexture;
import android.view.Surface;
import javax.microedition.khronos.egl.EGLContext;
public interface EglBase {
public static final int[] CONFIG_PIXEL_BUFFER = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, 12339, 1, 12344};
public static final int[] CONFIG_PIXEL_RGBA_BUFFER = new int[]{12324, 8, 12323, 8, 12322, 8, 12321, 8, 12352, 4, 12339, 1, 12344};
public static final int[] CONFIG_PLAIN = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, 12344};
public static final int[] CONFIG_RECORDABLE = new int[]{12324, 8, 12323, 8, 12322, 8, 12352, 4, EGL_RECORDABLE_ANDROID, 1, 12344};
public static final int[] CONFIG_RGBA = new int[]{12324, 8, 12323, 8, 12322, 8, 12321, 8, 12352, 4, 12344};
public static final int EGL_OPENGL_ES2_BIT = 4;
public static final int EGL_RECORDABLE_ANDROID = 12610;
public static final Object lock = new Object();
public final /* synthetic */ class -CC {
public static EglBase create(Context sharedContext, int[] configAttributes) {
if (EglBase14.isEGL14Supported() && (sharedContext == null || (sharedContext instanceof org.webrtc.EglBase14.Context))) {
return new EglBase14((org.webrtc.EglBase14.Context) sharedContext, configAttributes);
}
return new EglBase10((org.webrtc.EglBase10.Context) sharedContext, configAttributes);
}
public static EglBase create() {
return create(null, EglBase.CONFIG_PLAIN);
}
public static EglBase create(Context sharedContext) {
return create(sharedContext, EglBase.CONFIG_PLAIN);
}
public static EglBase createEgl10(int[] configAttributes) {
return new EglBase10(null, configAttributes);
}
public static EglBase createEgl10(EGLContext sharedContext, int[] configAttributes) {
return new EglBase10(new org.webrtc.EglBase10.Context(sharedContext), configAttributes);
}
public static EglBase createEgl14(int[] configAttributes) {
return new EglBase14(null, configAttributes);
}
public static EglBase createEgl14(android.opengl.EGLContext sharedContext, int[] configAttributes) {
return new EglBase14(new org.webrtc.EglBase14.Context(sharedContext), configAttributes);
}
}
public interface Context {
long getNativeEglContext();
}
void createDummyPbufferSurface();
void createPbufferSurface(int i, int i2);
void createSurface(SurfaceTexture surfaceTexture);
void createSurface(Surface surface);
void detachCurrent();
Context getEglBaseContext();
boolean hasSurface();
void makeCurrent();
void release();
void releaseSurface();
int surfaceHeight();
int surfaceWidth();
void swapBuffers();
void swapBuffers(long j);
}
what is that public final /* synthetic */ class -CC on the apk? because the rest of it should work, the error was because it could't found static class createEgl14, but is there, is just inside that weird public final /* synthetic */ class -CC
@saghul, I have been checking this in 2-3 devices. Also, I have checked this on the simulator. The crash is occurring on all the devices including simulators.
@dakshay-devstree Do you have a repriudicble repo? So far I haven't been able to reproduce this. The SDK samples project has been updated to 3.5.0 and it works just fine for me.
@saghul, Here is the demo repo link, It is nothing in there, Just the start button on which it will launch JitsiMeetActivity.
https://github.com/dakshay-devstree/jitsi-demo/tree/master
Even I have tried on 2 -3 different computers with Studio 3.5 and it is crashing in all the cases. However, degrading Gradle version is working.
That repo works just fine for me on a Pixel 2 XL simulator.
@saghul what android version are you running in that simulator?
@dakshay-devstree your demo repo crash in my devices too, galaxy S4 with 5.0.1 and Nvidia shield TV with 9.0, this is the weirdest bug ever
It is not working for me on Pixel 2 and Nexus 5 simulators. Also, I'm checking on my real test devices Pixel 2 XL, Samsung S8+, Samsung J8. All of them are crashing with the demo repo.
If it is working with you then I suspect it might be something related to the PC OS. I'm working on Ubuntu 18.04 LTS and Ubuntu 19.04 and In both, it is crashing.
And one more thing I need to add. It was working for me on the direct run for the first day after updating studio to 3.5, Later when I had generated a build for testing, It started throwing crash. Maybe Gradle cache is updated later so this is happening. Not sure though.
i'm building on windows, i can test on mac when i get home, i thought in the idea on maybe is because i was working with kotlin, but your demo repo is in java so is not possible now
ok suddenly @dakshay-devstree your demo repo is working fine on my Nvidia shield TV 9.0, but no luck on the galaxy s4
That repo works just fine for me on a Pixel 2 XL simulator.
My phenomenon is:
I tested on macOS, using the Pixel 2 XML simulator on API 28.
@saghul just out of curiosity, did you run the @dakshay-devstree demo repo as debug or simple run?
As debug.
It was working for me too in a direct run at the initial first two days after updating the studio.
I got to know this crash when I had to submit a release version, Later I tried generating a debug build and the same crash was occurring. Suddenly it stopped even on a direct run to a simulator or real device.
As we already know this is something related to Gradle - Gradle Cache or Gradle wrapper.
Indeed, but honestly, no clue on how to fix it
Sounds like a gradle / plugin error to me. Given it's the .0 release, maybe try again in the .1?
Not sure what is .0 or .1 release?
@dakshay-devstree i think @saghul refer to the gradle version, current is 3.5.0 release, maybe try again on 3.5.1 release
well is working fine now, super weird, the difference now is i'm not using Galaxy S4, but a pixel simulator with my nvidia shield tv, and jitsi is working fine now, haven't change any line of code, @dakshay-devstree delete the apps installed on your devices, first run as debug and test, then delete again and do a simple run
@andres934, Yes, When I'm doing simple run it is working for me now.
However with the same demo when I use to generate a signed debug or release apk then that generated apk is not working.
I have installed the generated apk in Nexus 5x emulator and it is not working.

i think the best would be wait for the next gradle release, in the mean time just downgrade the gradle to 3.4.2, because until now we haven't figure out what, when or why the crash is happening
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Setting android.enableDexingArtifactTransform.desugaring=false on gradle.properties solves the problem.
Most helpful comment
Setting
android.enableDexingArtifactTransform.desugaring=falseon gradle.properties solves the problem.