2014-06-15 46 views
2

我想为我的android应用程序使用MuPDF。为了构建它,我下载了源码,cygwin和android ndk。无法为android构建Mupdf(ExceptionInitializerError)

节省NDK和MUPDF源到我的F后:\驱动器,我跑了这一点:

Prepare the source

Check out a copy of the mupdf source from git:

~/src $ git clone git://git.ghostscript.com/mupdf.git Check out the third party library submodules:

~/src/mupdf $ git submodule update --init Populate the generated directory with the necessary files:

~/src/mupdf $ make generate Build and debug

Change into the platform/android directory and edit the local properties configuration file.

~/src/mupdf $ cd platform/android ~/src/mupdf/platform/android $ cp local.properties.sample local.properties ~/src/mupdf/platform/android $ nano local.properties

另注,复制local.properties后,我加入这一行:

sdk.dir=D:\\adt-bundle-windows-x86\\sdk 

其中D:\ adt-bundle-windows-x86 \ sdk是我的android sdk所在的位置。

我从MuPDF网站本身得到了上述内容。 在构建源,我得到这个: Possible error while building

在那之后,我从进口mupdf /源/平台的代码/安卓/我的日食workspace.The项目建立精细和PDF选择器打开,因为它应该;但是,当我选择一些pdf,它崩溃与以下错误:

06-15 10:34:43.267: E/AndroidRuntime(16870): FATAL EXCEPTION: main 06-15 10:34:43.267: E/AndroidRuntime(16870): java.lang.ExceptionInInitializerError 06-15 10:34:43.267: E/AndroidRuntime(16870): at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:213) 06-15 10:34:43.267: E/AndroidRuntime(16870): at com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:309) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.Activity.performCreate(Activity.java:5008) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.ActivityThread.access$600(ActivityThread.java:130) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.os.Handler.dispatchMessage(Handler.java:99) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.os.Looper.loop(Looper.java:137) 06-15 10:34:43.267: E/AndroidRuntime(16870): at android.app.ActivityThread.main(ActivityThread.java:4745) 06-15 10:34:43.267: E/AndroidRuntime(16870): at java.lang.reflect.Method.invokeNative(Native Method) 06-15 10:34:43.267: E/AndroidRuntime(16870): at java.lang.reflect.Method.invoke(Method.java:511) 06-15 10:34:43.267: E/AndroidRuntime(16870): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 06-15 10:34:43.267: E/AndroidRuntime(16870): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 06-15 10:34:43.267: E/AndroidRuntime(16870): at dalvik.system.NativeStart.main(Native Method) 06-15 10:34:43.267: E/AndroidRuntime(16870): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load mupdf: findLibrary returned null 06-15 10:34:43.267: E/AndroidRuntime(16870): at java.lang.Runtime.loadLibrary(Runtime.java:365) 06-15 10:34:43.267: E/AndroidRuntime(16870): at java.lang.System.loadLibrary(System.java:535) 06-15 10:34:43.267: E/AndroidRuntime(16870): at com.artifex.mupdfdemo.MuPDFCore.(MuPDFCore.java:14)

这里怎么回事? 我使用Cygwin和我运行Windows 7

我打算使用mupdf作为一个库渲染PDF文件

回答

1

你logcat中清楚地表明,它是“产生的原因:java.lang.UnsatisfiedLinkError中:无法加载mupdf:“,即因为无法加载”libmupdf.so“库而失败。

确保您已正确地遵循the MuPDF documentation page上的所有步骤。确保所有命令都能成功运行而不会出现任何错误。看看你的终端(命令提示符)截图,看起来“make”命令失败。

在ndk-build步骤之后,必须生成“libmupdf.so”,确保它在你的Android项目文件夹中/库/ armeabi-V7A/

+1

,但我一直在遵循这一链接 你能告诉我究竟错在哪里 –

+0

,我也看着我armeabi-V7A 什么是错的一个libmupdf.so ???。?: / –