Issue
Is there someone who had experience with this error?
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.swig.simple-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "liborg.swig.simple.example.so"
Error occurs when I load library by this way.
static {
System.loadLibrary("example");
}
I'm sure 'example' class is exist in the current folder.
Solution
Please note that there's a naming convention. Your lib needs to be called libexample.so .
LoadLibrary("example") will look for libexample.so.
The .so library needs to be inside the apk under the lib folder (since you are developing for Android, it needs to be under the lib/armeabi and lib/armeabi-v7a folders - why both folders ? some versions of Android look under lib/armeabi and some look under lib/armeabi-v7a ... se what works for you ).
Other things to look for :
make sure you compile for the correct architecture (if you compile for armeabi v5 it won't work on armeabiv7 or armeabiv7s ).
make sure your exported prototypes are used in the correct class (check the hello jni example. Your exposed functions need to look something like Java_mypackagename_myjavabridgeclass_myfunction).
For example the function Java_com_example_sample_hello will translate in the java class com.example.sample , function hello.
Answered By - MichaelCMS