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?

有帮助吗?

解决方案

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.

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top