如何在android应用程序中使用现有的.so文件

And*_*ser 6 pdf java-native-interface android pdftron pdfnet

我正在搜索应该在android平台上将.doc/.docx转换为.pdf的库.

我得到了PdFTron android sdk,因为他们已经给了libPDFNetC.so文件.

对于Conversion,有一个名为Convert的类,里面有一个方法toPDF(),在那个方法中,他们在内部调用了本机方法FileToPdf().我试过那个代码但是无法调用那个本机方法而且收到错误

我想知道,如果你现有.so文件,如果你想调用.so文件中存在的本机方法,那么是否需要使用JNI?我对JNI不太了解.任何帮助.

小智 2

您需要确保映射到本机接口的 .so 文件在您的系统上可用,并且可以被 Java 找到。

在您的 Java 代码中应该有类似System.loadLibrary("<libraryname>")或 的调用System.load("/path/to/libs/lib<libraryname>.so")。这将指示 JVM 搜索具有给定名称的库并加载它。

  • System.load("/path/to/libs/lib<libraryname>.so")只会查找指定为参数的文件,然后加载它。
  • System.loadLibrary("<libraryname.")将在配置的库路径中查找名为 的库lib<libraryname>.so。库路径取自系统变量java.library.path

还要确保您正在加载的库版本与 Java JNI 映射兼容!