我有要在我的应用程序中使用的MuPDF Library代码。我试图导入项目并尝试运行它。

但是问题是它可以正常运行,并在应用程序的启动处显示PDF文件列表,但是当我选择任何pdf文件时,它只会当机,并向我抛出以下错误:

11-15 16:48:21.308: E/AndroidRuntime(31013): FATAL EXCEPTION: main
11-15 16:48:21.308: E/AndroidRuntime(31013): Process: com.artifex.mupdfdemo, PID: 31013
11-15 16:48:21.308: E/AndroidRuntime(31013): java.lang.UnsatisfiedLinkError: Couldn't load mupdf from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.artifex.mupdfdemo-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.artifex.mupdfdemo-1, /vendor/lib, /system/lib]]]: findLibrary returned null
11-15 16:48:21.308: E/AndroidRuntime(31013):    at java.lang.Runtime.loadLibrary(Runtime.java:358)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at java.lang.System.loadLibrary(System.java:526)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at com.artifex.mupdfdemo.MuPDFCore.<clinit>(MuPDFCore.java:14)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:214)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:320)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.Activity.performCreate(Activity.java:5231)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.os.Handler.dispatchMessage(Handler.java:102)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.os.Looper.loop(Looper.java:136)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at android.app.ActivityThread.main(ActivityThread.java:5001)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at java.lang.reflect.Method.invokeNative(Native Method)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at java.lang.reflect.Method.invoke(Method.java:515)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
11-15 16:48:21.308: E/AndroidRuntime(31013):    at dalvik.system.NativeStart.main(Native Method)


该错误表明应用程序无法获取以C / C ++本机代码开发的库。我尝试了许多解决方案,但在此方面仍然没有任何成功。

尝试过的解决方案:

export mupdf and android studio 0.5.4

https://code.google.com/p/android/issues/detail?id=66937

有人可以指导我解决此错误吗?

谢谢。

最佳答案

我为此连续工作了一周。 Android Studio无法使用NDK进行编译。您必须使用Eclipse。

一旦我最终下载并安装了Eclipse,就可以编译并在我的设备上运行。完全没有麻烦。

遵循MuPDF网站上的“ Android版”教程。

将构建导入Eclipse

构建并在您的设备上进行测试

通过以下方式将其链接到您的项目:

右键单击Eclipse中的Mupdf包->属性-> android->(窗口底部)检查Is Library

在eclipse-> Properties-> android->(窗口底部)中右键单击您的包,然后在库部分中单击Add。 Selet Mupdf包并确定

从项目菜单清洁项目,然后从运行菜单调试/运行。
在您的设备上进行测试。魔法!

10-06 05:16
查看更多