如何将本机库(.so文件)导入到Eclipse中?

我下载了Android PDF Viewer源代码,并试图在Eclipse中进行编译。 我的朋友说,我可以从APK提取预编译的.so文件,而不是使用Cygwin和重新编译原生C库。

http://code.google.com/p/apv/downloads/detail?name=apv-0.3.1dev13.apk&can=2&q=

如何将这些libpdfview2.so文件导入到eclipse项目中?

更新:Eclipse提供以下错误,不会运行:

归档所需库:项目“APV”中的“lib / armeabi / libpdfview2.so”不能被读取或不是有效的ZIP文件

看看他们如何设置示例项目: http : //code.google.com/p/apv/source/browse/#hg%2Fpdfview

这个NDK教程在帮助你弄清NDK是如何工作的方面也是有用的: http : //mobile.tutsplus.com/tutorials/android/ndk-tutorial/

基本的是这样的:

  1. .so库文件通常位于project_root_dir / libs子文件夹中。 此外,通常它们还在描述其架构的更多子文件夹中(例如,project_root_dir / libs / armeabi / libpdfview2.so)。

  2. 要在活动中使用该库,请将静态库加载器添加到该活动,如下所示:

    静态的
    {
    的System.loadLibrary( “pdfview2”); //注意缺lesslib前缀
    }

  3. 然后定义您正在导入的本地函数。 您可以通过native关键字来识别这些function。 在下面的文件中查看它们在示例中导入的function:

http://code.google.com/p/apv/source/browse/pdfview/src/cx/hell/android/pdfview/PDF.java?r=560343d2dad904c5c925b6cadf97b90430fd25f4

这里有些例子:

private native int parseBytes(byte[] bytes); private native int parseFile(String fileName); private native int parseFileDescriptor(FileDescriptor fd); 

如上所述,在Window / Preferences / Android / Build帮助下, 关于此主题的关于此主题的另一个Stack Overflow线程closures了“在build上自动刷新资源和资源文件夹”和“当外部jar包含本机库时强制错误”。 至less这对我的情况有帮助!

不要忘记把这个文件放在'lib s / armeabi'中,让它在运行时可用。

希望这对其他人有帮助,如果Li_W太迟了。