-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fatal Exception: java.lang.UnsatisfiedLinkError couldn't find DSO to load: libimagepipeline.so / com.facebook.imagepipeline.memory.NativeMemoryChunk #2049
Comments
How is your build set up? Are you using ABI splits? http://frescolib.org/docs/shipping.html |
@oprisnik and multidex config |
I don't know why it only happen on OPPO - OS: Android 5.1.1 and before update to version 1.8.0, these issue not happen with same build config |
Hi @hsandyque, you don't need the extra dependency on Your build.gradle file should reference the For clarification: does this bug only happen on that particular device? Is there any |
Hi @lambdapioneer , |
Hi @hsandyque, given that it only happens with Oppo phones suggests that the way the binary libraries are bundled and the way the phone loads them are not playing nice. I don't have access to an OPPO phone at the moment and I couldn't find better pointers when searching :/ (a) Does this also happen when installing the showcase app that we have in our repository? (that would bring me closer to debug this once I get hold on an OPPO phone) |
Hi @lambdapioneer, I don't have an OPPO phone (Android 5.1.1), these issues report from Crashlytics. I don't know if these also happen on showcase app. And the bundle list as follow |
Hi @lambdapioneer, |
HI @oprisnik java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so |
Do you specify any ABI (CPU type) filters in your apps gradle files? |
@erikandre |
I use version 1.8.1 also have same problem.The device is VIVO X7(Android 5.1.1,arm64-v8a). FrescoIoBoundExecutor-2(121704)java.lang.UnsatisfiedLinkError com.facebook.imagepipeline.memory.NativeMemoryChunk
|
Any fix? This is my log |
@wangshuwen1107 @csbz17027 @ignaciogs
The log I found that is these specific devices run app in 32-bit (I don't know why, maybe the framework bug) but the libimagepipeline.so is 64-bit. Add the api filter as following code snap, skip the "arm64-v8a" |
@hsandyque thanks a lot ,your response is very helpful,Looking forward to your update! |
@oprisnik @erikandre @lambdapioneer |
@hsandyque do you load any other dependencies such that the system might be confused with a mix of 32bit and 64bit libraries? In this case I'd suggest that you go with the following
Maybe even drop |
Still having this issue on v1.9.0. Adding
Worked for me. But by reading the above conversation, seems it is not the "correct" solution? |
My team has the same issue , has not get so much crash reports (Of cause fresco's OOM) from a 3rd library like this, it's time to say bye bye ! |
i use |
Still have this problem on v1.9.0. |
Still facing that issue on 1.9.0 with supported abis "armeabi", "armeabi-v7a", "x86" |
Still have this problem on v1.9.0. |
I am also having the same issue. My app is crashing on opening. It occurs only on HTC One E9PLUS dual sim running on android 5.0.2 |
UPDATE: For those we got this issue, please do check the production guide on Fresco website, which solves our problem. |
Can you try with the solution outlined above? #2049 (comment) |
I have tried this solution still it crashes the app |
same issue,I use implementation 'com.facebook.fresco:fresco:2.0.0' |
i'm using 'com.facebook.fresco:fresco:2.0.0'. |
same here, it happens basically in every system version 6 and above and most device brands |
@glovebx You may want to check if limiting to 32Bit won't cause you problems with google's requirements for 64 Bit: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html From what i understood new apps or updates of existing apps will be required to support 64Bit starting 1.08.2019 |
I have a compromise solution before this issue fixed. |
@ShawnDongAi thank you for sharing this 👍 ! For us it's a bit too late : ) we moved to another image library due to this fresco issue here. |
facebook/SoLoader#45 should fix some of the issues here. We're also working on making SoLoader optional, so you can use other mechanisms to load native code instead. |
Using RN 0.60.5 version. packagingOptions {
} If you do not know which library is causing the crash, upload your bundle in Firebase test lab and then check. It will tell you which library is throwing the error |
@Balajipss won't excluding all 64-bit libraries cause any problems with Google's 64-bit requirement: https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html ? |
@waseefakhtar You can make the following changes packagingOptions { |
Does anyone has a step by step list to reproduce this issue? We're facing it in production but we can't reproduce it locally, even with the same phone that our crash notifier shows. |
@juanimoli not sure but most of the Oppo devices running OS 5 seems to face the issue. |
@waseefakhtar I was able to reproduce the issue by compiling the app for "armeabi-v7a" in the device specs json file option of the bundletool (using AppBundle). Installed the app in a supported device and the crash appeared right away. I was able to fix it by appling 2381#issuecomment-516825599 with no abiFilters or excludes added. |
I used fresco 1.13.0 and it was OK all the time. When update to 2.0.0,i got this issue.Then I checked my new apk,I found no libimagepipeline.so in my apk.Then I clean my project,build a new APK.and I have libimagepipeline.so in my new apk. and the problem is fixed,this maybe a issue from android studio! |
I have solved this problem in this way! defaultConfig { ... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "x86_64", "mips", "mips64" } } |
I update to AndroidX and then all of a sudden I had I have no idea, but guess something with Gradle cache went wrong. (although Gradle cache cleared) I would like to know the root cause if anyone knows. |
Happening on our side after upgrade to Fresco 2.1.0 |
I fixed it by doing the following changes:
After this change Fresco will use the native loader rather than soLoader to load any native libraries. |
You should also add |
Potential solutions:
|
@oprisnik I tried the above 3 solution upgraded to 2.2.0 and tested the app in firebase but during testing I got this error
only in devices running API 19. I had used
Initialized fresco using
The full stack trace is
|
This's not a better solution for App that need |
Description
Update to version 1.8.0, Crashlytic report these issues.
Fatal Exception: java.lang.UnsatisfiedLinkError: couldn't find DSO to load: libimagepipeline.so at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:522) at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:420) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:370) at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:335) at com.facebook.imagepipeline.nativecode.ImagePipelineNativeLoader.load(ImagePipelineNativeLoader.java:42) at com.facebook.imagepipeline.memory.NativeMemoryChunk.<clinit>(NativeMemoryChunk.java:33) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257) at com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.<init>(NativePooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:98) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:26) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:89) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:101) at com.facebook.imagepipeline.producers.LocalResourceFetchProducer.getEncodedImage(LocalResourceFetchProducer.java:39) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:54) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:45) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1115) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:590) at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:53) at java.lang.Thread.run(Thread.java:818)
Fatal Exception: java.lang.UnsatisfiedLinkError: com.facebook.imagepipeline.memory.NativeMemoryChunk at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:58) at com.facebook.imagepipeline.memory.NativeMemoryChunkPool.alloc(NativeMemoryChunkPool.java:20) at com.facebook.imagepipeline.memory.BasePool.get(BasePool.java:257) at com.facebook.imagepipeline.memory.NativePooledByteBufferOutputStream.<init>(NativePooledByteBufferOutputStream.java:51) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:98) at com.facebook.imagepipeline.memory.NativePooledByteBufferFactory.newByteBuffer(NativePooledByteBufferFactory.java:26) at com.facebook.imagepipeline.producers.LocalFetchProducer.getByteBufferBackedEncodedImage(LocalFetchProducer.java:89) at com.facebook.imagepipeline.producers.LocalFetchProducer.getEncodedImage(LocalFetchProducer.java:101) at com.facebook.imagepipeline.producers.LocalResourceFetchProducer.getEncodedImage(LocalResourceFetchProducer.java:39) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:54) at com.facebook.imagepipeline.producers.LocalFetchProducer$1.getResult(LocalFetchProducer.java:50) at com.facebook.common.executors.StatefulRunnable.run(StatefulRunnable.java:45) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:53) at java.lang.Thread.run(Thread.java:818)
Reproduction
Solution
I want to know if update to 1.8.1 can fix these issues or I need add
compile 'com.facebook.soloader:soloader:0.1.0+'
to build.gradleAdditional Information
compile 'com.facebook.fresco:fresco:1.8.0'
compile 'com.facebook.fresco:animated-gif:1.8.10'
OPPO - OS: Android 5.1.1
DEVICE: R7sfg / R7g / A51fa
The text was updated successfully, but these errors were encountered: