如何在Android应用程序中打包本机库?

时间:2011-06-14 17:07:40

标签: java android java-native-interface libgdx

我尝试在Android应用中包含一个使用本机代码的预建库,但未成功。我无法弄清楚我做错了什么。

完成的.apk文件的内容如下所示。 (我正在使用NetBeans和Ant来构建所有内容 - 如果有人想要的话,我可以包含Ant脚本的相关部分。)

META-INF
assets
libs >
    armeabi >
        libandroidgl20.so
        libgdx.so
res 
AndroidManifest.xml
classes.dex
resources.arsc

在应用程序代码中,我有:

static {
    System.loadLibrary("gdx");
    System.loadLibrary("androidgl20");
}

但我一直收到错误:java.lang.UnsatisfiedLinkError: Library gdx not found

我把.so文件放在正确的位置吗?我是否还需要做其他事情以确保运行时知道它们?

2 个答案:

答案 0 :(得分:2)

System.load()需要共享对象的确切路径(包括全名)。这就是你做错了。

改为使用System.loadLibrary("gdx");

答案 1 :(得分:0)

您确定符合'gdx'的所有依赖关系吗? 该库中是否有任何未实现的本机功能?