I have an android project with a libs
folder structure like this:
/libs
/armeabi
libfoo.so
libbar.so
libmystuff.so
libgnustl_shared.so
/armeabi-v7a
libfoo.so
libbar.so
foo
and bar
are third party libraries, mystuff
is my own library from a separate android JNI project which requires gnustl_shared
, which is from the same JNI project.
When I build my project in Eclipse, I can view the contents of the generated APK using unzip -l
, and it indeed shows that all of these library files have been included.
However, after installing the APK, the /data/data/com.myproject/lib
folder contains no libgnustl_shared.so
, even though the other libraries are present.
This inevitably leads to the following error:
UnsatisfiedLinkError: Couldn't load gnustl_shared: findLibrary returned null
As a sanity check, I ran adb push ./libs/armeabi/libgnustl_shared.so /data/data/com.myproject/lib
and sure enough, the application starts as expected.
I don't see anything in the build log or Eclipse console that suggests there were any issues building or installing the app.
- What could be preventing
libgnustl_shared.so
from being installed with my application? - Where can I go to learn about what happens when an APK is installed?
Please let me know in a comment if there's any specific information I can provide that might help.