我目前在我的Android应用程序中使用MuPDF
,当我从源代码构建它时(基于ReadMe.txt),它只生成.so
和armeabi
的{{1}}文件但不是armeabi-v7a
和x86
,当我在手臂拱形设备(三星Galaxy Tab 7)上运行应用程序时,它看起来不错。但不是MIPS
拱。我的问题是如何生成mips
和x86
共享对象文件?如果有任何其他解决方案,我会很感激...
PS:我正在使用MIPS
,我尝试使用android ndk r8d
进行更改,但我遇到了同样的问题。
答案 0 :(得分:7)
如果你在mupdf源代码中查看android / jni / Application.mk,你会看到一行:
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
我将为这些做些修补 - 在接下来的几天里观看我们的git repo。 编辑:修复现已提交。