Mike Baranczak
Mike Baranczak

Reputation: 8374

How to package native library in Android app?

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?

Upvotes: 3

Views: 3683

Answers (2)

Tatvamasi
Tatvamasi

Reputation: 2547

Are you sure all the dependencies of 'gdx' are met ?
Is there any unimplemented native function in that library ?

Upvotes: 0

mah
mah

Reputation: 39807

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.

Upvotes: 2

Related Questions