Android JNI загрузки MUPDF (скомпилировать с NDK?) - PullRequest
3 голосов
/ 10 марта 2011

Я создаю приложение Android Xoom, которое отображает PDF-файл в одном из действий.

Я скачал исходные файлы mupdf: mupdf.c, Android.mk, Application.mk, Core.mk и ThirdParty.mk.

Я также был на веб-сайте mupdf.com и пытался загрузить отсюда различные скомпилированные пакеты: http://ccxvii.net/mupdf/download/

Я только что переключился на Android с iPhone, и у меня есть кое-что, что нужно узнать о коде C. Я поместил файлы mk / c в / jni / в моем проекте. Я также попытался скопировать предварительно скомпилированные файлы, загруженные с веб-сайта выше, в / jni / в моем проекте.

У меня есть простой класс:

import android.graphics.*;

    public class PDFView {  
        static {
            System.loadLibrary("mupdf");
        }
    }

Каждый раз, когда я создаю экземпляр этого класса, приложение вылетает, и в LogCat выдается «ExceptionInInitializerError», а также «Не удалось загрузить mupdf: findLibrary вернул ноль».

Я также скачал Android NDK и попытался скомпилировать исходный код самостоятельно. Я получаю отсутствующую ошибку mupdf.h и ошибку fitz.h. Просто целый список ошибок, и это кажется слишком сложным, чтобы включить библиотеку.

Я работаю на Mac в Snow Leopard. Я думаю, что я на правильном пути, мне нужно скомпилировать это как двоичный файл, но это действительно расстраивает, потратив все это время на изучение NDK, тогда он не скомпилируется. Может быть, мне нужен обновленный источник.

Может кто-нибудь помочь направить меня в правильном направлении?

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Вам необходимо правильно настроить пути включения в вашем Android.mk

Пожалуйста, опубликуйте свой Android.mk для получения дополнительной помощи, хотя тем временем вы можете попытаться позаимствовать у NDK образцов , которые включены в вашу папку NDK.

Попробуйте сначала создать их как проверку работоспособности, затем посмотрите в jni / Android.mk, чтобы увидеть, как настроены их make-файлы.

Каталог docs в NDK также содержит отличную документацию по файлу Android.mk.

Честно говоря, использовать NDK будет сложно, если вы не обладаете опытом работы с C. Знание входов и выходов make, gcc и ld имеет первостепенное значение.

Редактировать - чтобы упростить этот процесс, я бы клонировал git-репозиторий mupdf. На самом деле существует проект Android , готовый к сборке.

Убедитесь, что вы используете git, чтобы сделать клон, так как вы хотите иметь все необходимые файлы. В файле readme есть простые инструкции по сборке. Похоже, что сначала это сработает и отладит, возможно, для вас будет более надежный путь разработки.

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

Мне удалось собрать библиотеку mupdf для Android.Я согласен с Полом, мне пришлось немного поработать, чтобы заставить его работать.Вы должны быть в состоянии исправить эти ошибки с небольшими изменениями.Вы должны сосредоточиться на том, чтобы убедиться, что пути ко всем этим различным сторонним исходным папкам присутствуют и являются правильными.

...