How to package native library in Android app?
-
27-10-2019 - |
Question
I'm trying unsuccessfully to include a pre-built library that uses native code in an Android app. I can't figure out what I'm doing wrong.
The contents of the finished .apk file look as follows. (I'm using NetBeans and Ant to build everything - I can include the relevant parts of the Ant script if anybody wants it.)
META-INF
assets
libs >
armeabi >
libandroidgl20.so
libgdx.so
res
AndroidManifest.xml
classes.dex
resources.arsc
In the application code, I have:
static {
System.loadLibrary("gdx");
System.loadLibrary("androidgl20");
}
But I keep getting the error: java.lang.UnsatisfiedLinkError: Library gdx not found
.
Am I putting the .so files in the right place? Do I need to do anything else to make sure the runtime is aware of them?
Solution
System.load() requires the exact path (including full name) to the shared object. This is what you're doing wrong.
Use System.loadLibrary("gdx");
instead.
OTHER TIPS
Are you sure all the dependencies of 'gdx' are met ?
Is there any unimplemented native function in that library ?