在尝试与PDFTron集成时出现了一个奇怪的错误,即PDFNet Android SDK:
UnsatisfiedLinkError:无法加载PDFNetC:findLibrary返回null。预计armv7a,找到cpu_info:abi:armeabi-v7a
我已经检查了这个link。
PDFNet Android SDK提供的本机库很可能未正确包含在我的项目中。 在lib文件夹中我下载了包,有本机库和java库都需要包含在我的项目中。
在主文件夹中创建一个名为jniLibs的文件夹,并将所有.so(具有相应的文件夹结构)放在jniLibs文件夹中,即:
这将允许Android Studio自动识别本机库路径。
我还指定了产品风味来过滤哪个.so使用,例如:
productFlavors {
armv7a {
ndk {
abiFilters "armeabi-v7a"
}
}
arm {
ndk {
abiFilters "armeabi"
}
}
x86 {
ndk {
abiFilters "x86"
}
}
armv8 {
ndk {
abiFilters "arm64-v8a"
}
}
x86_64 {
ndk {
abiFilters "x86_64"
}
}
fat {
ndk {
abiFilters "armeabi-v7a", "armeabi", "arm64-v8a", "x86", "x86_64"
}
}
}
然后我在项目的build.gradle文件中指定了jniLibs目录,即:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
res.srcDirs = ['res']
jniLibs.srcDirs = ['libs']
svg.srcDir 'src/main/svg'
}
}
答案 0 :(得分:2)
在Android Studio中导入PDFTron库项目。
在您的应用程序中使用该库项目。在您的应用程序compile project(':libraries:PDFViewCtrlTools')
中使用build.gradle
。
现在将libPDFNetC.so
文件复制到" jni / libs / armeabi"应用程序中的文件夹。
在你的application.mk
中写下这个。
APP_ABI := armeabi-v7a
APP_CPPFLAGS += -std=c++11 -exception
APP_STL := gnustl_shared
APP_PLATFORM=android-19
APP_OPTIM := debug
NDK_TOOLCHAIN_VERSION := 4.8
在Android.mk
文件中添加此
include $(CLEAR_VARS)
LOCAL_MODULE := libPDFNetC
# this libs path is relative to my jni files, so, src/main/jni/libs/libPrecompiledLib.a
LOCAL_SRC_FILES := libs/armeabi/libPDFNetC.so
include $(PREBUILT_SHARED_LIBRARY)
编辑:
PDFDoc doc = PDFDoc(InputStream var1)
可以使用此方法,您可以从网址打开PDF。
代码:
PDFViewCtrl mPDFViewCtrl = (PDFViewCtrl) view.findViewById(R.id.pdfViewer);
PDFDoc doc = new PDFDoc(filePath);
mPDFViewCtrl.setDoc(doc);
XML
<pdftron.PDF.PDFViewCtrl
android:id="@+id/pdfViewer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical|horizontal"
android:visibility="gone"/>
答案 1 :(得分:1)
如果您使用的是标准的jniLib结构(即主屏幕中的jniLibs,如第一个屏幕截图所示),则无需再在sourceSets中指定它。 sourceSets中的jniLibs.srcDirs = ['libs']
与标准结构(jniLibs)冲突。
见https://groups.google.com/forum/?fromgroups#!topicsearchin/pdfnet-sdk/android $ 20AND$20author$3Asgong@pdftron.com/pdfnet-sdk/0t_3-pN5jG4