mupdf库集成错误

Posted

技术标签:

【中文标题】mupdf库集成错误【英文标题】:error in integration of mupdf library 【发布时间】:2012-08-22 23:46:19 【问题描述】:

我正在处理一个必须处理 pdf 视图的项目。我正在尝试将 mupdf 库集成到我的项目中,但出现如下所述的错误。我已按照自述文件中提到的所有步骤进行操作。请帮我解决这个错误。

Compile thumb : mupdf <= mupdf.c

jni/mupdf.c:10:18: fatal error: fitz.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs-debug/mupdf/mupdf.o] Error 1

我的 android.mk 文件

    LOCAL_PATH := $(call my-dir)
TOP_LOCAL_PATH := $(LOCAL_PATH)

MUPDF_ROOT := $(call my-dir)

include $(TOP_LOCAL_PATH)/Core.mk
include $(TOP_LOCAL_PATH)/ThirdParty.mk

include $(CLEAR_VARS)

LOCAL_C_INCLUDES := \
    $(MUPDF_ROOT)/draw \
    $(MUPDF_ROOT)/fitz \
    $(MUPDF_ROOT)/mupdf
LOCAL_CFLAGS :=
LOCAL_MODULE    := mupdf
LOCAL_SRC_FILES := mupdf.c
LOCAL_STATIC_LIBRARIES := mupdfcore mupdfthirdparty

LOCAL_LDLIBS    := -lm -llog -ljnigraphics

include $(BUILD_SHARED_LIBRARY)

提前致谢。

【问题讨论】:

你有 fitz.h 文件吗? 是的,它位于 mupdf 库的 fitz 文件夹中。 你有超过 1 个 fitz.h 吗?如果是,那么它会产生歧义。 您的 Android.mk 文件的包含列表中是否包含“$(MUPDF_ROOT)/fitz”? 是的,它就在那里。请检查我在问题中上传的 android.mk 文件。 【参考方案1】:

您必须使用 Cygwin 运行 ma​​ke 命令。

【讨论】:

进入你下载的mupdf中的android文件夹,从那里读取README文件。 运行 make cpthirdparty/openjpeg-1.5.0/libopenjpeg/../opj_config.h.in.user build/debug/opj_config.h cp 时出现此错误:无法统计 thirdparty/openjpeg-1.5.0/libopenjpeg/../opj_config.h.in.user': No such file or directory Makethird:51: recipe for target build /debug/opj_config.h' 失败 make: *** [build/debug/opj_config.h] 错误 1【参考方案2】:

请按照以下this步骤操作

还要注意readme文件的步骤

【讨论】:

【参考方案3】:

MUPDF_ROOT := $(call my-dir) 替换为MUPDF_ROOT := ..

【讨论】:

【参考方案4】:

这就是我在 MuPDF 中取得成功的原因。

下载ndk并解压。 下载cygwin并解压。 下载 mupdf 源文件和第三方文件。

提取源和第三方提取文件添加到这里。

使用 cygwin 进入项目目录。

在 Eclipse 中打开项目并 将此添加到 application.mk

      NDK_TOOLCHAIN_VERSION=4.4.3

在cygwin中使用这个命令制作头文件

javah -jni -classpath bin/classes/ -d jni/ com.artifex.mupdf.MuPDFActivity

使用 cd .. 并返回 MupdfSource 提取目录并执行

    make

然后错误来了。使用

make NOX11=yes

进入cygwin中的项目目录(android文件夹)和

ndk-build

仅此而已 你得到 .so 文件

运行项目。

抱歉英语不好。

【讨论】:

非常感谢.. 真的非常好的描述..thnx 再次 如何制作命令:javah -jni -classpath bin/classes/ -d jni/ com.artifex.mupdf.MuPDFActivity 尝试运行,但出现错误:错误:无法访问 android.app.Activity找不到 android.app.Activity 的类文件【参考方案5】:

您应该调用 ./scripts/build-native.sh(对于 Windows,使用 cygwin),然后运行 ​​ndk-build

【讨论】:

怎么做。我在执行这个 $ ./scripts/build-native.sh -bash: ./scripts/build-native.sh: No such file or directory 时得到了这个

以上是关于mupdf库集成错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MuPDF 中实现页面卷曲

为 Android 构建 MUPDF

Pod spec私有库集成遇到的错误(二)

集成使用 @vue/composition-api 的组件库的运行时错误:'您必须在“setup()”方法中使用此函数'

facebook集成代码设计错误

如何将托管在gerrit上的代码库集成到jenkins?