我刚刚在Mac上完成了来自mupdf.com的mupdf编译。花了一些时间弄清楚了,但现在我的libs/armeabi文件夹中有一个libmupdf.so。

它们提供了一个名为MuPDFCore.java的此类示例,可在此处查看:
http://mupdf.com/repos/mupdf/android/src/com/artifex/mupdf/MuPDFCore.java

我在项目中使用了此类,并在LogCat中指出了以下内容:



据我所知,库正在加载,在我弄清楚如何编译该库之前,它一直崩溃,并说“mupdf”是一个空链接。

他们的例子几乎说openFile是一个 native 函数...就在我以为我想到这一点的同时,又出现了另一个问题。我整天都在努力。任何输入都会很棒!

编译不好吗?我在终端中没有任何错误。

最佳答案

当您尝试将其与示例项目的so文件一起用于您的项目时,它将引发“UnsatisfiedLinkError:未找到 native 方法” 异​​常。原因是由于jni绑定(bind)系统,您的应用程序包名称与示例应用程序包名称(“com.artifex.mupdf”)不同。您可以通过以下方法解决此问题:

1)很长的路要走:根据您的软件包名称更改mudef lib源代码,从中生成二进制文件(.so文件),然后在项目中使用它,例如@KuoCH说

2)简短方法:在您的根源目录(在项目源文件夹“src/main/java”旁边)中创建“com.artifex.mupdf”包,将示例项目中的所有类复制到其中

关于android mupdf libmupdf.so运行时错误 "No implementation found for native openFile",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5265975/

10-10 15:07