无法将.so库从工作项目集成到另一个库中

时间:2013-11-28 18:06:23

标签: java android c++ java-native-interface jniwrapper

我有一个工作项目,我使用JNI来调用C库中的方法。

我的项目结构:

enter image description here

加载库的代码:

static {
    System.loadLibrary("RemoveBackground");
}

效果很好。但直到我尝试将此功能集成到其他项目中。我复制了jnilibs个文件夹。同样所有three classes没有RemoveBackgroundActivity(测试活动)。当我编译这个项目时,我有一个例外:

1663-1663/com.example.Activities E/dalvikvm﹕ The lib may be ARM... trying to load it [/data/data/com.example.Activities/lib/libRemoveBackground.so] using houdini
1663-1663/com.example.Activities E/dalvikvm﹕ dvmHoudiniDlopen returns 0x9833cf40 with bool=1

您知道如何解决问题或其他方法吗?

1 个答案:

答案 0 :(得分:0)

我认为您尝试使用的RemoveBackground.so本机库不是为ARM体系结构构建的。我不确定Linux,但在Mac OS X上,您可以使用lipo命令检查本机库支持的体系结构。例如:

lipo -info /usr/lib/RemoveBackground.so