2016-05-23 1 views
3

Я хочу использовать mudf в своем проекте Android Studio для просмотра/редактирования PDF-файлов, и я следую инструкциям в http://www.mupdf.com/docs/how-to-build-mupdf-for-android. У меня SDK и NDK правильно настроены, а файл local.properties настроен так, чтобы указывать на соответствующие соответствующие пути. Теперь, когда я бегу НДК-сборки, я получаю следующий результат:Какой компилятор использовать при запуске ndk-build для mupdf для OSX?

armeabi-v7a] Compile thumb : mupdfthirdparty <= cff.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= type1cid.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= psaux.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= pshinter.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= psnames.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= raster.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= smooth.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= sfnt.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= truetype.c 
    [armeabi-v7a] Compile thumb : mupdfthirdparty <= type1.c 
    [armeabi-v7a] StaticLibrary : libmupdfthirdparty.a 
    [armeabi-v7a] SharedLibrary : libmupdf_java.so 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../source/fitz/printf.c:29: error: undefined reference to '__isinff' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsdate.c:332: error: undefined reference to '__isfinite' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsdate.c:227: error: undefined reference to '__isfinite' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsparse.c:869: error: undefined reference to '__isfinite' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsdate.c:318: error: undefined reference to '__isfinite' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsnumber.c:40: error: undefined reference to '__isinf' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/json.c:107: error: undefined reference to '__isinf' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsvalue.c:14: error: undefined reference to '__isinf' 
    /Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../thirdparty/mujs/jsvalue.c:226: error: undefined reference to '__isinf' 
    collect2: error: ld returned 1 exit status 
    make: *** [/Users/aayushkothari/Codes/mupdf/platform/android/viewer/obj/local/armeabi-v7a/libmupdf_java.so] Error 1 

на основе ответов на How to set standard c99 for compile android NDK project, я изменил мой файл Application.mk, чтобы включить строку APP_CFLAGS += -std=c99

Когда я бегу ndk- строить снова, я получаю следующее:

[armeabi-v7a] Compile thumb : mupdf_java <= mupdf.c 
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/mupdf.c: In function 'Java_com_artifex_mupdfdemo_MuPDFCore_getFocusedWidgetSignatureState': 
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/mupdf.c:2361:2: warning: implicit declaration of function 'pdf_signatures_supported' [-Wimplicit-function-declaration] 
    if (!pdf_signatures_supported()) 
^
[armeabi-v7a] Compile thumb : mupdfcore <= bbox-device.c 
[armeabi-v7a] Compile thumb : mupdfcore <= bidi-std.c 
[armeabi-v7a] Compile thumb : mupdfcore <= bidi.c 
[armeabi-v7a] Compile thumb : mupdfcore <= bitmap.c 
[armeabi-v7a] Compile thumb : mupdfcore <= buffer.c 
[armeabi-v7a] Compile thumb : mupdfcore <= colorspace.c 
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../source/fitz/colorspace.c: In function 'fast_cmyk_to_rgb_ARM': 
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../source/fitz/colorspace.c:410:2: error: 'asm' undeclared (first use in this function) 
    asm volatile(
^
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../source/fitz/colorspace.c:410:2: note: each undeclared identifier is reported only once for each function it appears in 
/Users/aayushkothari/Codes/mupdf/platform/android/viewer/jni/../../../../source/fitz/colorspace.c:410:6: error: expected ';' before 'volatile' 
    asm volatile(
    ^
make: *** [/Users/aayushkothari/Codes/mupdf/platform/android/viewer/obj/local/armeabi-v7a/objs/mupdfcore/__/__/__/__/source/fitz/colorspace.o] Error 1 

После немного поиска в том, что я изменил -c99 к -gnu99 и побежал НДК-строить снова, только чтобы получить первоначальные ошибки снова.

Что мне нужно изменить/добавить, чтобы избавиться от них, а также вообще какие шаги должен сделать кто-то новый для Android, чтобы включить muPDF в существующий проект Android Studio?

ответ

1

Первый вопрос, касающийся __isinff и т. Д., Я считаю, что известная проблема с 64-битным андроидным NDK или, по крайней мере, связана с некоторыми изменениями, которые Google намеренно сделал для NDK.

Если вернуться к старой, 32-битный НДК, он должен работать - например:

http://dl.google.com/android/ndk/android-ndk-r10d-darwin-x86.bin

Добавление этого на ваш Application.mk также может помочь также:

APP_PLATFORM := android-9 

см., например, https://groups.google.com/forum/#!topic/android-ndk/L2gc5HRq_dA

+0

Я поменял android-8 на android-9 на своем Application.mk согласно вашему предложению, и это сработало. Спасибо, @JosephH. –

 Смежные вопросы

  • Нет связанных вопросов^_^