Скомпилированная библиотека JNI (libmupdf.so), работает нормально для Android 2.2 и эмулятора Android, но не работает на Android 2.1 - PullRequest
3 голосов
/ 18 марта 2011

Мне удалось собрать библиотеку mupdf для Android (libmupdf.so), и я начал работать на эмуляторе. Я использовал ndk: android-ndk-r5b и android-ndk-r4b, оба работают нормально.

У меня есть приложение. которая вызывает библиотеку mupdf для чтения PDF-файла и сохранения его в формате jpg на SD-карте.

Это прекрасно работает на эмуляторе (2.1 и 2.2) , а также на уровне устройства Android 2.2 API уровня 8 (LG Optimus).

Однако на Samsung Galaxy S (Android 2.1-обновление 1, уровень API 7) , приложение устанавливается нормально, но при запуске я получаю сообщение об ошибке:

ОШИБКА / AndroidRuntime: Причина: java.lang.UnsatisfiedLinkError: Библиотека mupdf не найдена

Я пытался собрать библиотеку с помощью ndk-r5b, а также prev. версии - ndk-r4, ndk-3 и ndk-r4b. Кажется, нет никаких изменений: (* ​​1019 *

Любые идеи о том, что может быть причиной ошибки?!?! Любые предложения / помощь приветствуется.

Ответы [ 4 ]

3 голосов
/ 19 марта 2011

В документе Dalvik JNI Tips есть некоторые предложения.Первое, что нужно сделать, - взглянуть на вывод logcat выше исключения и посмотреть, есть ли диагностика dlopen ().

0 голосов
/ 12 декабря 2011

У меня были проблемы с загрузкой библиотеки JNI с помощью android-ndk-r5b на устройствах Android 2.1-update1 (в частности, Samsung Galaxy I9000), на Android 2.2 / 2.3 она работала нормально.Использование android-ndk-r7 доставило мне некоторые проблемы с компиляцией, но после того, как я обновил NDK до версии android-ndk-r5c - моя нативная библиотека отлично работает на устройствах Android 2.1-update1 / 2.2 / 2.3.

0 голосов
/ 25 апреля 2011

Файл сборки mupdf - Android.mk включает в себя библиотеку jnigraphics, которая не требуется.

Связывание этой библиотеки и запуск на устройстве Android 2.2 или эмуляторе (2.2 или 2.1) невызвать какие-либо проблемы.Однако, если эта библиотека включена и затем запущена на устройстве Android 2.1 (я использовал Galaxy SI9000 Android 2.1-update1), возникает ошибка времени выполнения Android, «Библиотека mupdf не найдена».

ВВ файле Android.mk была подключена библиотека с именем libjnigraphics.После того, как ссылка была удалена, я смог собрать для Galaxy SI9000 Android 2.1-update1.

0 голосов
/ 21 марта 2011

Файл сборки mupdf - Android.mk включает в себя библиотеку jnigraphics, которая не требуется.

Связывание этой библиотеки и запуск на устройстве Android 2.2 или на эмуляторе (2.2 или 2.1) не вызывает никаких проблем.Однако, если эта библиотека включена и затем запущена на устройстве Android 2.1 (я использовал Galaxy SI9000 Android 2.1-update1), возникает ошибка времени выполнения Android, «Библиотека mupdf не найдена».

...