APV PDF Viewer崩溃

时间:2013-02-21 11:55:35

标签: android android-ndk

我是Android NDK的新手。 这是我的第一个项目。 我从http://code.google.com/p/apv/downloads/list下载了android PDF阅读器。 它正在编译,但是当我尝试从这个应用程序加载PDF时。它显示如下错误:

07-03 10:18:06.171: ERROR/AndroidRuntime(375): FATAL EXCEPTION: main
07-03 10:18:06.171: ERROR/AndroidRuntime(375): java.lang.ExceptionInInitializerError
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.getPDF(OpenFileActivity.java:541)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.startPDF(OpenFileActivity.java:502)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.onCreate(OpenFileActivity.java:219)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.os.Looper.loop(Looper.java:123)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.reflect.Method.invokeNative(Native Method)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.reflect.Method.invoke(Method.java:521)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at dalvik.system.NativeStart.main(Native Method)
07-03 10:18:06.171: ERROR/AndroidRuntime(375): Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.Runtime.loadLibrary(Runtime.java:461)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.System.loadLibrary(System.java:557)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.lib.pdf.PDF.<clinit>(PDF.java:25)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     ... 16 more

我在很多问题中看到了类似的错误。 由于我是NDK的新手,我无法理解该怎么做。

5 个答案:

答案 0 :(得分:4)

看起来这会导致错误 Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found

只需下载此库pdfview2

即可

使用任何zip工具打开文件并复制项目中的必要文​​件,您就可以开始使用了。

答案 1 :(得分:2)

这个问题与

完全相同

Implement pdfViewer with APV

去那里寻找答案。

PS。下次使用搜索。

答案 2 :(得分:2)

如果不加载本机库,则会出现此错误。出现这种情况的原因很多。首先,您需要确保正确设置Android.mk文件(在jni目录中)。假设它(或它们)设置正确,找到如下所示的行:

LOCAL_MODULE := libpdfview2

注意这个名称,因为它很重要。接下来,将以下行添加到Activity的顶部(或多活动应用程序中的Application):

static {
    System.loadLibrary("pdfview2");
}

在这里,请注意名称。它是删除了lib前缀的本地模块的名称。假设NDK构建正常,并且Android.mk文件设置正确,这将解决您的问题。


修改

另外,您是否阅读了有关构建库的信息here

答案 3 :(得分:1)

还有另一种PDF开放解决方案,请点击此处:

Open PDF in Android

我认为没有你的代码就很难想象会发生什么。

答案 4 :(得分:1)

Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found

上述异常是由于找不到指定库的链接引起的,这是自解释的,但实际上是因为从项目创建了相关项目的.so文件时根据包创建了.so函数项目结构。所以我们不能在我们的项目中直接使用.so。

您需要使用应用程序包重新构建.so文件,之后此错误将无效,您也可以获得本机功能访问权限。