向android apk添加预构建库

向android apk添加预构建库,android,Android,我使用android构建系统在android中构建了一个动态库。该库为其中的函数提供jni接口。现在我想在应用程序(.apk)中包含这个库。我正在使用eclipse进行应用程序开发。现在,如何在应用程序中使用预构建动态库(.so)?我试着把它放在我的应用程序的lib文件夹中,但它不起作用 任何指点都很感激 我没有使用ndk来构建我的.so.既然你写了“so”,我想你在使用ndk。如果你用的是NDK,我不知道答案 如果您使用的是“Java”SDK,那么在您的库项目中转到Properties->An

我使用android构建系统在android中构建了一个动态库。该库为其中的函数提供jni接口。现在我想在应用程序(.apk)中包含这个库。我正在使用eclipse进行应用程序开发。现在,如何在应用程序中使用预构建动态库(.so)?我试着把它放在我的应用程序的lib文件夹中,但它不起作用

任何指点都很感激


我没有使用ndk来构建我的.so.

既然你写了“so”,我想你在使用ndk。如果你用的是NDK,我不知道答案

如果您使用的是“Java”SDK,那么在您的库项目中转到Properties->Android,并选中“Is library”。在“apk”项目中,转到属性->Android->添加。你的图书馆项目应该是可用的


另外,在“Java构建路径”菜单中添加的任何库(同样,在项目属性中)最终都应该可以在APK中使用。

我知道它有点旧,但是您是否检查了构建的APK以查看您的.so库是否存在?应位于libs/armeabi文件夹中

此外,您的.so文件应该位于eclipse解决方案的lib/armeabi文件夹中。我猜armeabi位取决于您的处理器。所以文件是为哪个处理器生成的

另外,我知道如果你的库不是lib[name],那么在设备上安装apk时它就不会被复制。因此:

  • libfoo.so副本
  • 福,所以不抄袭
福,所以不抄袭

此外,您还可以使用DDMS(它是eclipse中的一个视图)和文件资源管理器来查看它是否已复制到您的设备上。它应该在data/data/[packagename]/lib下

希望这有点帮助


安迪。

我在为安卓系统构建时遇到了同样的问题。在EclipseAndroid项目下,确保有一个libs目录(不是复数libs,也不是单数lib)。在内部创建带有各自的.so文件的armeabi/etc子目录

然后,当您构建时,eclipse将自动获取这个libs目录,并在您的apk中创建相应的lib。然后System.loadLibrary(“XXX”)将解析为libXXX.so,在正确的体系结构上

干杯,
Jimme

不,我没有使用ndk。我已经用android代码构建了我的库。好吧。无论如何,我的回答在那种情况下是无用的:P。