My app is using 2 native libraries, lets call them LibA.so and LibB.so. Previously my app was running well below kitkat OS without any problem.
Now It gives UnsatisfiedLinkError in Nexus 5 with OS 5.0(lollipop) Both .so library are in armeabi folder.
So please give me common solution folder stucture to follow.
I am rather new to native libraries in android. Thanks in advance!
update: It works fine now. Got a solution by changing my LibA.so file links to Md5_init related calls. In Os 5.0 google have made some changes in system lib calls Thank you all for your support
I could make it work by including these 3 files in my project and adding md5.c to Android.mk LOCAL_SRC_FILES list.
md5.h, md5.c, hash.h
md5.h
md5.c
hash.h
update: It works fine now. Got a solution by changing my LibA.so file links to Md5_init related calls. In Os 5.0 google have made some changes in system lib calls to md5_init file Thank you all for your support
You can pull
libcrypto.so
from your device. It is not necessary to look for a Lollipop version. In your Android.mk, useIgnore the NDK warning about using non-official libraries. You should not ship this
libcrypto.so
with your APK, just like you don't shiplibm.so
. See more here: WARNING: …/Android.mk: non-system libraries in linker flagsFrom your error description I can see that library LibA.so not loaded due to it uses some MD5 code which is not available - not linked in. For example you may use other native shared library with MD5 sources linked in during build (as shared library) - but you not copied this shared library to target application libs folder.
I am not sure that implementation of MD5 related functions included into recent Android NDK. And also may be it was part of some android system shared libraries for previous versions and it was removed from Android L.
So you need to check references from your C++/C code to MD5 related functions and found where sources are stored/linked.
I may provide links for functions list which is exported from libc.so for android-17 for example and android-L: Android-17 LIBC functions vs Android-L LIBC functions
And as you also may see - MD5 related functions are absent in shared libraries for L - so I believe that you have to include sources for those features (MD5) into your dynamic library.