如何在jar中捆绑.so文件?

时间:2016-06-16 10:22:43

标签: java android jar java-native-interface

我目前正在开发一个使用一些自己编写的本机代码的java库(绑定)。此本机代码编译为多个体系结构的.so文件(arm-v7,i686,x86-64等)。

我知道在android中你必须创建一个名为jniLibs的文件夹,其中包含每个包含正确.so文件的体系结构的子文件夹。然后使用Android.mk文件和System.loadLibrary我可以将这些文件包含在我的代码中。

但是,我不知道如何在普通的java项目/库中包含这些.so文件。我在网上看到System.loadLibrary仅适用于查看普通文件(而不一定是项目文件)。

2 个答案:

答案 0 :(得分:1)

除了.jar文件中的代码之外,您不能拥有任何其他内容,但是,您可以拥有.aar文件中的资源。

Android Archive Library (aar) vs standard jar

您会发现库的.aar是您库的可再发行/可重用编译版本。

答案 1 :(得分:0)

您可以按SWT的方式执行此操作 - 将库文件从.jar文件中提取到用户的主目录(因此您确定可以访问用java代码手动编写。 您可以查看org.eclipse.swt.internal.Library,方法extract()

的源代码