2013-02-27 82 views
4

目前在我的Android應用程序中使用MuPDF,當我建立了它從源(基於的ReadMe.txt)它只是產生.so文件armeabiarmeabi-v7a但不x86MIPS,當我運行IM手臂拱門設備上的應用(三星Galaxy Tab 7),看起來不錯。但不在mips拱門。我的問題是我如何可以生成x86MIPS共享對象文件?如果有任何其他解決方案,我將不勝感激...的Android mupdf對MIPS和x86架構

PS:我使用android ndk r8d,我試圖改變與android-ndk-r6b,但我得到同樣的問題。

回答

7

如果你的Android/JNI/Application.mk的mupdf源中查找,您將看到一行:

APP_ABI = armeabi armeabi-v7a 

你可以這樣:

APP_ABI = armeabi armeabi-v7a x86 mips 

甚至:

APP_ABI = all 

以啓用其他體系結構。

這會導致當前的問題,因爲android/jni/Core.mk和android/jni/Core2.mk文件定義了-DARCH_ARM和-DARCH_THUMB(在編寫它們時,Android僅支持ARM處理器)。這需要一點魔法與預處理:

ifeq ($(TARGET_ARCH),arm) 
LOCAL_CFLAGS += -DARCH_ARM -DARCH_THUMB -DARCH_ARM_CAN_LOAD_UNALIGNED 
ifdef NDK_PROFILER 
LOCAL_CFLAGS += -pg -DNDK_PROFILER -O2 
endif 
endif 
LOCAL_CFLAGS += -DAA_BITS=8 

我會得到修復放在這些 - 看我們的混帳回購協議,在未來幾天。 編輯:修復現在承諾。

+1

是的,我得到最新的來源,但我得到錯誤:: C:/android-ndk-r8d/toolchains/x86-4.6/prebuilt/windows/bin/../ lib/gcc/i686-linux-android/4.6 /../../../../i686-linux-android/bin/ld.exe:./obj/local/x86/objs/mupdf/mupdf.o:in function Java_com_artifex_mupdfdemo_MuPDFCore_openFile:jni/mupdf.c :296:錯誤:未定義引用'sigsetjmp'。我如何解決這個問題? – abhie 2013-02-28 03:16:20

+0

有同樣的問題,你有沒有找到解決辦法? – craigrs84 2014-12-15 21:49:31

+0

缺少sigsetjmp是該特定NDK版本中的一個錯誤。使用r8e,你會沒事的,我想。 – 2015-11-24 17:46:18