jitsi-meet
jitsi-meet copied to clipboard
Android App Crash: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so
Description:
It worked great in the jitsi SDK version of 2.9.3, though when I upgrade the jitsi SDK to 5.1.0, a crash always occurs whenever I initialize the jitsi SDK and join a meeting room
The crash log:
W/SoLoader: libjscexecutor.so not found on DirectAPKSoSource: 4
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__cxa_bad_typeid" referenced by "/data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/base.apk!/lib/arm64-v8a/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:529)
at com.facebook.soloader.DirectApkSoSource.loadLibrary(DirectApkSoSource.java:77)
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1038)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
at com.facebook.react.jscexecutor.JSCExecutor.loadLibrary(JSCExecutor.java:24)
at com.facebook.react.jscexecutor.JSCExecutor.<clinit>(JSCExecutor.java:20)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:29)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1112)
at java.lang.Thread.run(Thread.java:923)
D/SoLoader: libjscexecutor.so not found on /system/lib64
D/SoLoader: libjscexecutor.so not found on /vendor/lib64
E/SoLoader: couldn't find DSO to load: libjscexecutor.so
SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64 flags = 0]
SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/base.apk!/lib/arm64-v8a]
SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64
result: 0
E/AndroidRuntime: FATAL EXCEPTION: create_react_context
Process: com.my.app, PID: 17137
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so
SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64 flags = 0]
SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/base.apk!/lib/arm64-v8a]
SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64
result: 0
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
at com.facebook.react.jscexecutor.JSCExecutor.loadLibrary(JSCExecutor.java:24)
at com.facebook.react.jscexecutor.JSCExecutor.<clinit>(JSCExecutor.java:20)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:29)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1112)
at java.lang.Thread.run(Thread.java:923)
E/JitsiMeetSDK: JitsiMeetUncaughtExceptionHandler FATAL ERROR
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so
SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64 flags = 0]
SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/base.apk!/lib/arm64-v8a]
SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64
result: 0
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
at com.facebook.react.jscexecutor.JSCExecutor.loadLibrary(JSCExecutor.java:24)
at com.facebook.react.jscexecutor.JSCExecutor.<clinit>(JSCExecutor.java:20)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:29)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1112)
at java.lang.Thread.run(Thread.java:923)
java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libjscexecutor.so
SoSource 0: com.facebook.soloader.DirectorySoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64 flags = 0]
SoSource 1: com.facebook.soloader.DirectApkSoSource[root = /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/base.apk!/lib/arm64-v8a]
SoSource 2: com.facebook.soloader.DirectorySoSource[root = /system/lib64 flags = 2]
SoSource 3: com.facebook.soloader.DirectorySoSource[root = /vendor/lib64 flags = 2]
Native lib dir: /data/app/~~PKlY1zxnY1I_9g3kewPBDA==/com.my.app-oPmcKhUyEBL8mkHRwrWxJA==/lib/arm64
result: 0
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:1098)
at com.facebook.soloader.SoLoader.loadLibraryBySoNameImpl(SoLoader.java:914)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:826)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:773)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:743)
at com.facebook.react.jscexecutor.JSCExecutor.loadLibrary(JSCExecutor.java:24)
at com.facebook.react.jscexecutor.JSCExecutor.<clinit>(JSCExecutor.java:20)
at com.facebook.react.jscexecutor.JSCExecutorFactory.create(JSCExecutorFactory.java:29)
at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1112)
at java.lang.Thread.run(Thread.java:923)
Steps to reproduce:
initialize the jitsi SDK and join a meeting room, it instantly crashes with the same crash log
Server information:
- Jitsi Meet version: 5.1.0
- Operating System: Macos
Client information:
- Browser / app version: Android 11
2.9.3 works great for me, only the latest versions have the above crash. I want to upgrade from 2.9.3 to 5.1.0 because the 2.9.3 doesn't fully support the Android 12. (change targetSDKVersion to 31
to target android 12)
A way to work around the crash when targeting the android 12 is to add android:exported="true"
to the <activity>
in the build.gradle of the jitsi SDK 2.9.3: (the following code is from the app build.gradle of the android jitsi SDK)
def dropboxActivity = """
<activity
android:configChanges="keyboard|orientation"
android:launchMode="singleTask"
android:exported="true" (add this line will make the 2.9.3 SDK version support android 12)
android:name="com.dropbox.core.android.AuthActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="db-${dropboxAppKey}" />
</intent-filter>
</activity>"""
would you mind to help me do that in the 2.9.3 SDK version? I tried to download the 2.9.3 SDK manually (without gradle), import it and modify the build.gradle, though the imported jitsi SDK is not recognized.
Thanks for checking!
Hi there!
2.9.3 is ancient, we no longer support it, sorry!
How have you integrated the SDK in your project? (Show the gradle files) 5.1.0 should work fine.
I integrated the android jitsi SDK into my project, and the 2.9.3 version worked fine for the past several years, the crash only happens if I upgrade it to a newer version for example the 5.1.0.
here is my app build.gradle file, I added some dependencies related to react native and didn't work out:
buildscript {
repositories {
google()
mavenCentral()
mavenLocal()
maven {
url("$rootDir/../node_modules/react-native/android")
}
maven {
url("$rootDir/../node_modules/jsc-android/dist")
}
}
dependencies {
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
classpath 'com.android.tools:r8:3.0.73'
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.firebase.crashlytics'
repositories {
google()
maven {
url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
}
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
maven { url "https://jitpack.io" }
maven { url 'https://www.jitpack.io' }
mavenCentral()
jcenter()
}
dependencies {
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'commons-io:commons-io:2.11.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.2'
//! network
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
//! flexbox layout, used for tracks badges listing in session list
implementation 'com.google.android.flexbox:flexbox:3.0.0'
//! support libraries
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
implementation 'androidx.browser:browser:1.4.0'
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.exifinterface:exifinterface:1.3.3'
implementation 'androidx.emoji:emoji-appcompat:1.1.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
//! play services
implementation 'com.google.android.gms:play-services-analytics:18.0.0'
implementation 'com.google.android.gms:play-services-maps:18.0.1'
//! firebase & crashlytics
implementation 'com.google.firebase:firebase-core:20.0.2'
implementation 'com.google.firebase:firebase-analytics:20.0.2'
implementation 'com.google.firebase:firebase-messaging:23.0.0'
implementation 'com.google.firebase:firebase-crashlytics:18.2.6'
implementation 'com.google.firebase:firebase-perf:20.0.4'
implementation "androidx.camera:camera-camera2:1.0.0-beta11"
implementation "androidx.camera:camera-lifecycle:1.0.0-beta11"
implementation "androidx.camera:camera-view:1.0.0-alpha18"
//! XMPP
implementation 'org.igniterealtime.smack:smack-android:4.1.9'
implementation 'org.igniterealtime.smack:smack-tcp:4.1.9'
implementation 'org.igniterealtime.smack:smack-im:4.1.9'
implementation 'org.igniterealtime.smack:smack-extensions:4.1.9'
//! Testing
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.powermock:powermock-module-junit4:2.0.9'
testImplementation 'org.powermock:powermock-api-mockito2:2.0.9'
testImplementation 'androidx.arch.core:core-testing:2.1.0'
testImplementation "com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0"
testImplementation "io.mockk:mockk:1.12.1"
testImplementation 'org.json:json:20201115'
configurations {
all*.exclude group: 'xpp3', module: 'xpp3'
all*.exclude module: 'httpclient'
all*.exclude module: 'commons-logging'
all*.exclude group: 'com.google.firebase', module: 'firebase-core'
all {
resolutionStrategy {
force 'androidx.media:media:1.0.0'
}
}
}
implementation "androidx.core:core-ktx:1.7.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation project(path: ':zoom_commonlib')
implementation project(path: ':zoom_mobilertc')
implementation "com.google.crypto.tink:tink-android:1.5.0"
implementation "androidx.security:security-crypto:1.1.0-alpha03"
implementation "com.google.android.exoplayer:exoplayer-core:2.16.1"
implementation "com.google.android.exoplayer:exoplayer-ui:2.16.1"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "com.google.code.gson:gson:2.8.6"
implementation "com.github.bumptech.glide:annotations:4.12.0"
implementation "androidx.window:window:1.0.0"
implementation "androidx.window:window-java:1.0.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.6.0"
implementation "com.airbnb.android:lottie:4.0.0"
//! jitsi SDK
implementation ('org.jitsi.react:jitsi-meet-sdk:5.1.0') { transitive = true }
implementation 'org.webkit:android-jsc:+'
implementation 'com.facebook.soloader:soloader:0.6.1'
api 'com.facebook.react:react-native:+'
implementation 'com.facebook.fresco:animated-gif:2.5.0'
implementation 'com.dropbox.core:dropbox-core-sdk:4.0.1'
implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'com.squareup.duktape:duktape-android:1.3.0'
implementation "androidx.startup:startup-runtime:1.1.0"
def room_version = "2.4.1"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor "androidx.room:room-compiler:$room_version"
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.1")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.4.1")
kapt("androidx.room:room-compiler:$room_version")
implementation("androidx.room:room-ktx:$room_version")
implementation "androidx.room:room-rxjava3:$room_version"
def composeVersion = "1.0.5"
implementation "androidx.compose.runtime:runtime:$composeVersion"
implementation "androidx.compose.ui:ui:$composeVersion"
implementation "androidx.compose.foundation:foundation:$composeVersion"
implementation "androidx.compose.foundation:foundation-layout:$composeVersion"
implementation "androidx.compose.material:material:$composeVersion"
implementation "androidx.compose.runtime:runtime-livedata:$composeVersion"
implementation "androidx.compose.ui:ui-tooling:$composeVersion"
implementation "com.google.android.material:compose-theme-adapter:$composeVersion"
implementation "androidx.activity:activity-compose:1.4.0"
}
android {
compileSdkVersion 31
dexOptions {
jumboMode = true
javaMaxHeapSize "4g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.my.app"
minSdkVersion 23
targetSdkVersion 31
versionCode 1100
versionName "9.9.9"
multiDexEnabled true
ndk {
abiFilters = []
abiFilters.addAll(['armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'])
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst '**/armeabi-v7a/libc++_shared.so'
pickFirst '**/x86/libc++_shared.so'
pickFirst '**/arm64-v8a/libc++_shared.so'
pickFirst '**/x86_64/libc++_shared.so'
pickFirst '**/x86/libjsc.so'
pickFirst '**/armeabi-v7a/libjsc.so'
}
buildTypes {
release {
minifyEnabled false
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
zipAlignEnabled true
}
}
lintOptions {
lintConfig file("lint.xml")
}
//! enable the Jetpack Compose
buildFeatures {
compose true
}
kotlinOptions {
jvmTarget = '1.8'
}
composeOptions {
kotlinCompilerExtensionVersion "1.0.5"
}
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.jaredsburrows.license'
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
failBuildOnCVSS = 1
suppressionFile = 'config/dependency_check/suppressions.xml'
}
project.ext.react = [
enableHermes: false,
deleteDebugFilesForVariant: { false },
enableVmCleanup: false,
entryFile: "index.js",
]
Thanks for help check!
Why are you specifying react native dependencies by hand instead of allowing Jitsi Meet to pull them?
I am facing the exact same issue.
packagingOptions { pickFirst 'lib/x86/libc++_shared.so' pickFirst 'lib/arm64-v8a/libc++_shared.so' pickFirst 'lib/x86_64/libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' }
I have included these things in my app level gradle for some conflicting with others library. @saghul please try to run your code with these 4 lines. Then you will definitely face this problem. And please provide us a solution.
What problem do you run into, if you remove them?
2 files found with path 'lib/arm64-v8a/libc++_shared.so'
like for all 4 files
Do you have any other react native dependencies, aside from those pulled in by our SDK?
I have included zoom aar file as well. I think these include those files.
My code works fine with jitsi 2.10.0. But after 3+. I am getting error
Have you tried adding the missing library to the pickFirst list too?
I have added the pickFirst list only in my app level gradle.
Same error?
Why are you specifying react native dependencies by hand instead of allowing Jitsi Meet to pull them?
I didn't specify the react native dependencies at the very beginning, and I still got the crash. I added them because the crash log says that the react native library has some issue so then I manually add them in the gradle file, and it makes no difference, I'm still getting the same crash.
I also have to specify the following because of the Zoom SDK:
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
}
Same error?
Yes
I honestly don't know what's going on there.
If you can create a small projects that reproduces the issue I'll take a look.
Any news? This is also happening to us only on release builds for Android.
Any news? This is also happening to us only on release builds for Android.
How did you integrate the SDK? Do you have a small sample project that can reproduce the issue?
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.