Droidreader编译方法
所需工具环境:
1.NDK(android-ndk-r5b)
2.mupdf-0.8.15
3.mupdf-thirdparty
4.Droidreader源码
步骤:
一.配置好NDK环境变量
二.拷贝需要的相关包
1.将thirdparty目录中的freetype-2.4.4目录中的所有文件文件夹拷贝到droidreader源码下的freetype文件夹中
2.将thirdparty目录中的jbig2dec目录中的文件文件夹同1操作
3.将thirdparty目录中的openjpeg-1.4目录中的文件文件夹同1操作
4.将thirdparty目录中的jpeg-8c目录中的文件文件夹同1操作
5.将mupdf-0.8.15目录中的所有文件文件夹拷贝到droidreader源码中的mupdf目录下
三.进入droidreader-read-only目录下的jni文件夹ndk-build
编译会出错,如图
make:***没有规则可以创建“/home/archermind/PDF/droidreader-read-only/obj/local/armeabi/objs/openjpeg/openjpeg/libopenjpeg/function_list.o”需要的目标“/home/archermind/PDF/droidreader-read-only/jni/openjpeg/libopenjpeg/function_list.c”。停止。
修改方法:
将源码中jni目录下的Android.mk进行修改。
注释掉或者删除如下行:
openjpeg/libopenjpeg/function_list.c\
openjpeg/libopenjpeg/cidx_manager.c\
openjpeg/libopenjpeg/thix_manager.c\
openjpeg/libopenjpeg/tpix_manager.c\
openjpeg/libopenjpeg/phix_manager.c\
openjpeg/libopenjpeg/ppix_manager.c
再次编译就可以生成libpdfrender.so文件了。
这样将工程导入到eclipse中,就可以运行droidreader了。
如果要将其编入到android系统中,只写模块中的mk文件会造成运行时找不到.so库
一般Android源码中可以在/XXXX/build/target/board/generic目录下的AndroidBorad.mk文件中间添加如下内容:
PRODUCT_COPY_FILES+=packages/apps/Droidreader/libs/armeabi/libpdfrender.so:system/lib/libpdfrender.so
添加后会把项目中libs/armeabi/libpdfrender.so文件拷贝到/XXXX/out/target/product/imx51_bbg/system/lib目录中
这样就完全把DroidReader放到Android编译系统中了