4

我目前MuPDF在我的android应用程序中使用,当我从源代码(基于ReadMe.txt)构建它时,它只为and而不是and生成.so文件,当我在arm arch设备(Samsung Galaxy Tab 7)上运行应用程序时,它看起来不错. 但不是在拱门。我的问题是如何生成和共享目标文件?如果有其他解决方案,我将不胜感激...armeabiarmeabi-v7ax86MIPSmipsx86MIPS

PS:我正在使用android ndk r8d,我试图改变android-ndk-r6b但我遇到了同样的问题。

4

1 回答 1

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。编辑:修复现已提交。

于 2013-02-27T10:49:43.837 回答