Не удалось собрать Mupdf для Android (ExceptionInitializerError)

Я хотел использовать MuPDF для своего приложения для Android. Для сборки я скачал исходники, cygwin и android ndk.

После сохранения исходного кода ndk и MUPDF на диск F:\ я запустил следующее:

Подготовьте источник

Проверьте копию исходного кода mupdf из git:

~/src $ git clone git://git.ghostscript.com/mupdf.git Ознакомьтесь с подмодулями сторонних библиотек:

~/src/mupdf $ git submodule update --init Заполните сгенерированный каталог необходимыми файлами:

~/src/mupdf $ make generate Сборка и отладка

Перейдите в каталог platform/android и отредактируйте файл конфигурации локальных свойств.

~/src/mupdf $ cd platform/android ~/src/mupdf/platform/android $ cp local.properties.sample local.properties ~/src/mupdf/platform/android $ nano local.properties

Еще одно замечание: после копирования local.properties я добавил эту строку:

sdk.dir=D:\\adt-bundle-windows-x86\\sdk

Где D:\adt-bundle-windows-x86\sdk — это место, где находится мой Android SDK.

Я получил это с самого сайта MuPDF. При создании исходного кода я получил следующее: Возможная ошибка при сборке

После этого я импортировал код из mupdf/source/platform/android/ в свою рабочую область eclipse. Проект отлично строится, и окно выбора PDF открывается, как и должно быть; но когда я выбираю какой-либо PDF, происходит сбой со следующей ошибкой:

06-15 10:34:43.267: E/AndroidRuntime(16870): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 06-15 10:34:43.267: E/AndroidRuntime(16870): java.lang.ExceptionInInitializerError 06-15 10:34:43.267: E/AndroidRuntime(16870): в com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:213) 06-15 10:34:43.267: E/AndroidRuntime(16870): в com.artifex.mupdfdemo.MuPDFActivity.onCreate (MuPDFActivity.java:309) 06-15 10:34:43.267: E/AndroidRuntime(16870): в android.app.Activity.performCreate(Activity.java:5008) 06-15 10:34:43.267: E/AndroidRuntime (16870): в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 06-15 10:34:43.267: E/AndroidRuntime(16870): в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 06-15 10:34:43.267: E/AndroidRuntime(16870): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 06-15 10:34:43.267: E/AndroidRuntime(16870): в android. app.ActivityThread.access$600(ActivityThread.ja va:130) 06–15 10:34:43.267: E/AndroidRuntime(16870): в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 06–15 10:34:43.267: E/AndroidRuntime( 16870): в android.os.Handler.dispatchMessage(Handler.java:99) 06-15 10:34:43.267: E/AndroidRuntime(16870): в android.os.Looper.loop(Looper.java:137) 06 -15 10:34:43.267: E/AndroidRuntime(16870): в android.app.ActivityThread.main(ActivityThread.java:4745) 06-15 10:34:43.267: E/AndroidRuntime(16870): в java.lang .reflect.Method.invokeNative(собственный метод) 06-15 10:34:43.267: E/AndroidRuntime(16870): в java.lang.reflect.Method.invoke(Method.java:511) 06-15 10:34: 43.267: E/AndroidRuntime(16870): на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 06-15 10:34:43.267: E/AndroidRuntime(16870): на com.android .internal.os.ZygoteInit.main(ZygoteInit.java:553) 06-15 10:34:43.267: E/AndroidRuntime(16870): в dalvik.system.NativeStart.main(Native Method г) 06-15 10:34:43.267: E/AndroidRuntime(16870): Причина: java.lang.UnsatisfiedLinkError: Не удалось загрузить mupdf: findLibrary вернул null 06-15 10:34:43.267: E/AndroidRuntime(16870) ): в java.lang.Runtime.loadLibrary(Runtime.java:365) 06-15 10:34:43.267: E/AndroidRuntime(16870): в java.lang.System.loadLibrary(System.java:535) 06- 15 10:34:43.267: E/AndroidRuntime(16870): в com.artifex.mupdfdemo.MuPDFCore.(MuPDFCore.java:14)

Что здесь происходит не так? Я использую cygwin и работаю под управлением Windows 7.

Я планирую использовать mupdf в качестве библиотеки для рендеринга PDF-файлов


person harveyslash    schedule 15.06.2014    source источник


Ответы (1)


Ваш logcat ясно показывает, что это «вызвано: java.lang.UnsatisfiedLinkError: не удалось загрузить mupdf:», т. е. произошел сбой, потому что он не смог загрузить библиотеку «libmupdf.so».

Убедитесь, что вы правильно выполнили все шаги на странице документации MuPDF. . Убедитесь, что все команды выполнены успешно, без каких-либо ошибок. Глядя на скриншот вашего терминала (командной строки), кажется, что команда «make» не удалась.

После шага ndk-build необходимо сгенерировать «libmupdf.so». Убедитесь, что он есть в вашей папке Android-Project-Folder/libs/armeabi-v7a/

person epiphany27    schedule 15.06.2014
comment
но я прошел по этой ссылке. Не могли бы вы сказать мне, что на самом деле пошло не так? - person harveyslash; 15.06.2014