java - 打开 pdf 时出现 NullPointer 异常 (MUPDF Android)

标签 java android pdf nullpointerexception rendering

我有一个库项目,它是MUPDF渲染库。我正在使用名为 OPENER 的项目来要求图书馆项目显示 pdf。像这样:

String s= Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/Download/Adobe Reader/Getting Started with Adobe Reader.pdf";
Uri uri = Uri.parse(s);

Intent intent = new Intent(getBaseContext(), MuPDFActivity.class);

intent.setAction(Intent.ACTION_VIEW);

intent.setData(uri);





startActivity(intent);

我认为 pdf 确实可以打开(我永远看不到它),因为 Logcat 是这么说的:

07-16 12:21:02.678: D/dalvikvm(2317): No JNI_OnLoad found in /data/data/com.example.opener/lib/libmupdf.so 0xa6ac31c8, skipping init 07-16 12:21:02.690: E/libmupdf(2317): Opening document... 07-16 12:21:02.706: I/alert(2317): alert_init 07-16 12:21:02.706: E/libmupdf(2317): Done! 07-16 12:21:02.738: D/dalvikvm(2317): GC_CONCURRENT freed 181K, 3% free 8176K/8391K, paused 13ms+0ms, total 22ms

但是在上述消息之后,我收到一个 nullpointerException。以下是完整的错误消息:

07-16 12:21:02.830: E/AndroidRuntime(2317): FATAL EXCEPTION: main
07-16 12:21:02.830: E/AndroidRuntime(2317): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.opener/com.artifex.mupdflib.MuPDFActivity}: java.lang.NullPointerException
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.os.Looper.loop(Looper.java:137)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread.main(ActivityThread.java:4745)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at java.lang.reflect.Method.invokeNative(Native Method)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at java.lang.reflect.Method.invoke(Method.java:511)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at dalvik.system.NativeStart.main(Native Method)
07-16 12:21:02.830: E/AndroidRuntime(2317): Caused by: java.lang.NullPointerException
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.CallbackApplication$MuPDFCallbackClass.sendGaiView(CallbackApplication.java:16)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.MuPDFActivity.updatePageNumView(MuPDFActivity.java:966)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.MuPDFActivity.access$5(MuPDFActivity.java:949)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.MuPDFActivity$4.onMoveToChild(MuPDFActivity.java:430)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.ReaderView.setDisplayedViewIndex(ReaderView.java:94)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.MuPDFActivity.createUI(MuPDFActivity.java:654)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at com.artifex.mupdflib.MuPDFActivity.onCreate(MuPDFActivity.java:396)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.Activity.performCreate(Activity.java:5008)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
07-16 12:21:02.830: E/AndroidRuntime(2317):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)

问题是什么,我哪里出错了?

最佳答案

String s=Environment.getExternalStorageDirectory().getAbsolutePath().toString()+"/Download/AdobeReader/Getting Started with Adobe Reader.pdf";
Uri uri = Uri.parse(s);

Intent intent = new Intent(getBaseContext(), MuPDFActivity.class);

intent.setAction(Intent.ACTION_VIEW);

intent.setData(uri);



//if document protected with password
intent.putExtra("password", "PDF document password");

//if you need highlight link boxes
intent.putExtra("linkhighlight", true);

//if you don't need device sleep on reading document
intent.putExtra("idleenabled", false);

//document name
intent.putExtra("docname", "PDF document file name");




startActivity(intent);

关于java - 打开 pdf 时出现 NullPointer 异常 (MUPDF Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24780726/

相关文章:

java - Android:从 newInstance 传递 Extra 到 onCreate

java - 如何在 iText 7 中获取和设置 yline?

android - Angular2 自定义请求

java - 在 Java 多线程中使用 Timeout 避免死锁

java - 如何只打印文本?

java - 为什么我会收到 CancelledKeyException?

android - 仅将新文件(照片)从 Android adb 拉到 linux 操作系统

java - 使用 PDFBox 填写的 PDF 表单不起作用

html - 滚动嵌入在 HTML 中的 PDF

java - 如何在java中嵌入tomcat