Search code examples
androidfresco

Adding Fresco Library breaks Android project


I have an Android project. It's working for several iteration now without any major issues. It's important to note that I am using a 3rd party library that uses an .so file in jnilib folder.

I decided to add WebP and GIF playback implementation. Upon looking for 3rd party libraries, I ended up using Fresco.

Now, I tried adding Fresco in gradle and I immediately encountered an issue with Duplicate Entry. Perhaps because of Facebook SDK implementation. I managed to fix by adding exclude for com.parse.bolts

The gradle build now works properly, but as soon as I run the app. I encountered an UnsatisfiedLinkError with the code from the library I mentioned earlier

Anybody encountered this issue? How can I resolve this?

EDIT:

Here's the error log

   java.lang.UnsatisfiedLinkError: No implementation found for void com.lib.util.Utils.nativeSetLevel(int) (tried Java_com_lib_util_Utils_nativeSetLevel and Java_com_lib_util_Utils_nativeSetLevel)`

That code works before. This only happen when I add Fresco.


Solution

  • Most probably that's because fresco added native libraries of new architecture (which was unsupported by your libs, for example arm64-v8a), try to limiting supported architectures adding

    ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    

    into defaultConfig of your build gradle, changing "armeabi-v7a", "x86" to the list of architectures, which you build your lib for.

    Another way is to build your native library for all architectures, supported by fresco.