2016-12-23 6 views
2

Я получаю странные ошибки при попытке интегрировать с PDFTron PDFNet т.е. Android SDK:Ошибка пытается LoadLibrary для PDFTron Android

UnsatisfiedLinkError: Couldn't load PDFNetC: findLibrary returned null. Expected armv7a, found cpu_info: abi: armeabi-v7a

Я уже проверил это link.

Скорее всего, родная библиотека, предоставленная PDFNet Android SDK, не включена в мой проект правильно. Внутри папки lib я загрузил пакет, есть родные библиотеки и java-библиотека, которые оба должны быть включены в мой проект.

создал папку под названием jniLibs в основной папке и поместить все .so (с соответствующей структурой папок) внутри папки jniLibs, то есть:

enter image description here

Это позволит 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" 
     } 
    } 
} 

Тогда я указал каталог jniLibs внутри build.gradle файла вашего проекта, а именно:

sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     jniLibs.srcDirs = ['libs'] 
     svg.srcDir 'src/main/svg' 
    } 
} 
+1

Я использовал эту библиотеку в моем проекте. Я скопировал файл libPDFNetC.so в папку «jni/libs/armeabi» и в.тк файл «включают $ (CLEAR_VARS) LOCAL_MODULE: = libPDFNetC # это ЛИЭС путь относительно моих JNI файлов, поэтому, SRC/основные/JNI/LIBS/libPrecompiledLib.a LOCAL_SRC_FILES: = ЛИЭС/armeabi/libPDFNetC.so include $ (PREBUILT_SHARED_LIBRARY) "написал это. Он работает правильно в моем проекте. –

+0

@ KushPatel вы можете отправить ответ с надлежащим объяснением? – Gattsu

+0

@ MaňishYadav сделано. Я думаю, что он должен работать –

ответ

2

Импорт PDFTron Library Project в Android Studio. Используйте этот проект библиотеки в своем приложении. Для этого используйте 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) 

Edit:

PDFDoc doc = PDFDoc(InputStream var1) 

может быть с помощью этого метода вы можете открыть PDF из URL.

Код:

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"/> 
+0

Вы должны использовать этот https: //www.pdftron.com/pdfnet/mobile/request_trial.html. И PDFTron является лицензированным продуктом, поэтому вам нужно заполнить эту информацию. –

+0

@maven перейдите в папку «samples» и проверьте –

+0

. Я прошел навигацию, но в ней нет [Библиотечного проекта.] (Http://i.imgur.com/p9kjlaV.png) – Gattsu

1

Если вы используете стандартную структуру jniLib (т.е. jniLibs в основной, как показано в первом скриншоте), вам не нужно указывать его в sourceSets больше. jniLibs.srcDirs = ['libs'] в sourceSets противоречит стандартной структуре (jniLibs).

См https://groups.google.com/forum/?fromgroups#!topicsearchin/pdfnet-sdk/android [email protected]/pdfnet-sdk/0t_3-pN5jG4