Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

Native crash (conceal version 2.0.2) java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfb.so #208

Open
selena775 opened this issue Feb 18, 2020 · 1 comment

Comments

@selena775
Copy link

The application we are using is packed as bundle and obfuscated with proguard rules. It crashes when trying encrypt a photo. Here is the log crash

Caused by java.lang.UnsatisfiedLinkError
couldn't find DSO to load: libfb.so

Caused by java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfb.so
at com.facebook.soloader.SoLoader.b(SoLoader.java:138)
at com.facebook.soloader.SoLoader.a(SoLoader.java:53)
at com.facebook.soloader.SoLoader.a(SoLoader.java:1)
at com.facebook.soloader.NativeLibrary.loadLibraries(NativeLibrary.java:34)
at com.facebook.soloader.NativeLibrary.ensureLoaded(NativeLibrary.java)
at com.facebook.android.crypto.keychain.AndroidCryptoLibrary.ensureCryptoLoaded(AndroidCryptoLibrary.java:1)
at com.facebook.cipher.Cipher.a(Cipher.java:2)
at com.facebook.crypto.Crypto.getCipherOutputStream(Crypto.java:3)
at com.mybeepr.chatapp.repository.handlers.CryptoFileStore$importFileTo$2.a(CryptoFileStore.java:56)
at com.mybeepr.chatapp.repository.handlers.CryptoFileStore$importFileTo$2.a(CryptoFileStore.java:2)
at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.b(SingleMap.java:2)
at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:31)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:9)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleDoOnSuccess.subscribeActual(SingleDoOnSuccess.java:7)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleFlatMap$SingleFlatMapCallback.b(SingleFlatMap.java:27)
at io.reactivex.internal.operators.single.SingleMap$MapSingleObserver.b(SingleMap.java:14)
at io.reactivex.internal.operators.single.SingleFromCallable.subscribeActual(SingleFromCallable.java:31)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleMap.subscribeActual(SingleMap.java:9)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleFlatMap.subscribeActual(SingleFlatMap.java:9)
at io.reactivex.Single.a(Single.java:14)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:2)
at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:9)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:13)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)

Here are proguard rules set in the app

-keep class com.facebook.crypto.** { ; }
-keep class com.facebook.jni.
* { ; }
-keepclassmembers class com.facebook.cipher.jni.
* { ; }
-dontwarn com.facebook.
*

-keep,allowobfuscation @interface com.facebook.crypto.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.crypto.proguard.annotations.KeepGettersAndSetters

-keep @com.facebook.crypto.proguard.annotations.DoNotStrip class *
-keepclassmembers class * {
@com.facebook.crypto.proguard.annotations.DoNotStrip ;
}
-keepclassmembers @com.facebook.crypto.proguard.annotations.KeepGettersAndSetters class * {
void set
(**);
*** get
();
}

-keepclassmembers class * {
com.facebook.jni.HybridData *;
(com.facebook.jni.HybridData);
}

-keepclasseswithmembers class * {
com.facebook.jni.HybridData *;
}

-keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip
-keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters

-keep @com.facebook.proguard.annotations.DoNotStrip class *
-keepclassmembers class * {
@com.facebook.proguard.annotations.DoNotStrip *;
}

-keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * {
void set*(**);
*** get
();
}

**I've tried many things and the only way it doesn't crash is with
android.bundle.enableUncompressedNativeLibs=false
flag defined in gradle.properties

It is obsolete and it will be really good if you can take a look at this issue.**

@illwiz
Copy link

illwiz commented Feb 24, 2020

also experiencing this issue when using app bundle java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libfb.so
facebook/SoLoader#46 (comment)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants