Android: не удалось загрузить mupdf

У меня есть проект (Android Studio - Gradle) Cordova (3.6.4).

В моем приложении может быть список файлов PDF, которые должны отображаться с помощью mupdf. Но я всегда получаю следующее сообщение об ошибке:

06-10 15:04:38.365    5940-5940/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: de.dil.DSM, PID: 5940
    java.lang.UnsatisfiedLinkError: Couldn't load mupdf from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/de.dil.DSM-2.apk"],nativeLibraryDirectories=[/data/app-lib/de.dil.DSM-2, /vendor/lib, /system/lib]]]: findLibrary returned null
            at java.lang.Runtime.loadLibrary(Runtime.java:358)
            at java.lang.System.loadLibrary(System.java:526)
            at com.artifex.mupdfdemo.MuPDFCore.<clinit>(MuPDFCore.java:14)
            at de.dil.DSM.DSM.loadFile(DSM.java:216)
            at de.dil.DSM.xviewer$6.run(xviewer.java:102)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)

Кажется, что файлы java из mupdf импортированы правильно.

Похоже, что это "просто" libmupdf.so, который неправильно импортирован.

Файлы libmupdf.so находятся в следующих каталогах:

  • библиотеки / armeabi / libmupdf.so
  • библиотеки / armeabi-v7a / libmupdf.so

Здесь также есть файл c mupdf: jni / mupdf.c

Есть ли что-то, что мне особенно нужно настроить в settings.gradle или build.gradle?

Впереди спасибо !!!!


person mbo    schedule 10.06.2015    source источник


Ответы (2)


Поместите свои файлы .so в папку jniLibs

>src
  >main
    >jniLibs
      >armeabi
        |libmupdf.so
      >armeabi-v7a
        |libmupdf.so
person Médéric    schedule 10.06.2015

Решением было добавить это:

jniLibs.srcDirs = ['libs']

К существующим исходным наборам в build.gradle!

person mbo    schedule 11.06.2015