我做了一个使用一些本地库的android库项目.
我已经创建了jni包装器并将本机库(.so)放在libs //文件夹中.使用cmake编译本机库,用于armeabi,armeabi-v7a,x86和mips.
我将这个项目导出到一个jar并将这个jar放入一个"正常"的android项目中.然后我将这个项目导出到apk,并且可以看到我的库是捆绑到它.
但是,当我安装apk时,对应于该设备的库不会被复制到/data/data/com.my.app/lib中,显然,运行应用程序会抱怨没有找到libs(UnsatisfiedLinkError).
我已经搜索了SO和我能找到的任何地方,但没有找到解决我案例的答案.
我正在使用Eclipse,顺便说一句
谢谢你的帮助
UPDATE
好的,我已经阅读了ndk中的文档并看过这些示例,不幸的是,我看不到解决方案.
ndk将c代码构建到共享库中,并将它们放入项目中的适当位置.但它不会生成任何说明必须使用apk安装lib的内容.
我的目标是提供一个android库(所以jar),可以包含在Android应用程序中.我没有看到我正在做的事情之间的真正区别(使用cmake编译c libs并将jni和java编译的类打包到jar中)以及android.mk做了什么
如果你看到我所缺少的东西,请随时告诉我(即使它很明显).
谢谢
UPDATE
我做了一个肮脏的黑客:在我的应用程序的libs文件夹中,我把包含我的类和我的本机库的jar文件和每个arch的.so文件的副本.至少,libs没有安装在/data/data/com.me.myapp/lib中
它似乎证实这是一个包装问题.