Java 如何使用pdfview在android中打开PDF

Java 如何使用pdfview在android中打开PDF,java,android,Java,Android,我正在使用android-pdfview-1.0.2.jar,我发现它与主项目的链接是我正在尝试加载PDF,如下所示 PDFView pdfView= (PDFView) findViewById(R.id.pdfView); pdfView.fromAsset("sample.pdf") .defaultPage(1) .showMinimap(false) .enableSwipe(true) .onLoad(this) .onPageChange(this) .load(); 我在布局中

我正在使用android-pdfview-1.0.2.jar,我发现它与主项目的链接是我正在尝试加载PDF,如下所示

PDFView pdfView= (PDFView) findViewById(R.id.pdfView);
pdfView.fromAsset("sample.pdf")
.defaultPage(1)
.showMinimap(false)
.enableSwipe(true)
.onLoad(this)
.onPageChange(this)
.load();
我在布局中添加了pdfView,如下所示

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

    <com.joanzapata.pdfview.PDFView
        android:id="@+id/pdfView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

执行时,我遇到以下错误:

06-12 17:10:10.015: E/AndroidRuntime(21726): FATAL EXCEPTION: AsyncTask #1
06-12 17:10:10.015: E/AndroidRuntime(21726): java.lang.RuntimeException: An error occured while executing doInBackground()
06-12 17:10:10.015: E/AndroidRuntime(21726):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.FutureTask.run(FutureTask.java:239)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.lang.Thread.run(Thread.java:838)
06-12 17:10:10.015: E/AndroidRuntime(21726): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load vudroid from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.klouddata.pdffileexample-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.klouddata.pdffileexample-2, /vendor/lib, /system/lib]]]: findLibrary returned null
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.lang.Runtime.loadLibrary(Runtime.java:359)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.lang.System.loadLibrary(System.java:514)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at org.vudroid.pdfdroid.codec.PdfContext.<clinit>(PdfContext.java:13)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-12 17:10:10.015: E/AndroidRuntime(21726):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-12 17:10:10.015: E/AndroidRuntime(21726):    ... 3 more
06-12 17:10:10.015:E/AndroidRuntime(21726):致命异常:AsyncTask#1
06-12 17:10:10.015:E/AndroidRuntime(21726):java.lang.RuntimeException:执行doInBackground()时出错
06-12 17:10:10.015:E/AndroidRuntime(21726):在android.os.AsyncTask$3.done(AsyncTask.java:299)
06-12 17:10:10.015:E/AndroidRuntime(21726):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于java.util.concurrent.FutureTask.setException(FutureTask.java:219)
06-12 17:10:10.015:E/AndroidRuntime(21726):在java.util.concurrent.FutureTask.run(FutureTask.java:239)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-12 17:10:10.015:E/AndroidRuntime(21726):在java.lang.Thread.run(Thread.java:838)
06-12 17:10:10.015:E/AndroidRuntime(21726):原因:java.lang.UnsatifiedLink错误:无法从加载程序dalvik.system.PathClassLoader加载vudroid[DexPathList[[zip文件”//data/app/com.klouddata.pdffileexample-2.apk],NativeLibrary目录=[/data/app lib/com.klouddata.pdffileexample-2,/vendor/lib,/system/lib]]:findLibrary返回空值
06-12 17:10:10.015:E/AndroidRuntime(21726):在java.lang.Runtime.loadLibrary(Runtime.java:359)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于java.lang.System.loadLibrary(System.java:514)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13)
06-12 17:10:10.015:E/AndroidRuntime(21726):位于org.vudroid.pdfdroid.codec.PdfContext.(PdfContext.java:13)
06-12 17:10:10.015:E/AndroidRuntime(21726):在com.joannazapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50)
06-12 17:10:10.015:E/AndroidRuntime(21726):在com.joannazapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:31)
06-12 17:10:10.015:E/AndroidRuntime(21726):在android.os.AsyncTask$2.call(AsyncTask.java:287)
06-12 17:10:10.015:E/AndroidRuntime(21726):在java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-12 17:10:10.015:E/AndroidRuntime(21726):。。。3个以上

通过添加可以找到的armeabi-v7a文件夹解决了问题

现在sample.pdf看起来像

您的asynctask代码在哪里?我的代码中没有任何asynctask。您的异常中显示了
致命异常:asynctask
java.lang.RuntimeException:执行doInBackground()时发生错误。
是的,我可以看到。但是请相信我,我没有使用AsyncTask堆栈跟踪的重要部分是由以下原因引起的:java.lang.UnsatifiedLinkError:无法从加载程序dalvik.system.PathClassLoader[DexPathList[[zip file”/data/app/com.klouddata.pdffileexample-2.apk]、NativeLibrary目录加载vudroid=[/data/app lib/com.klouddata.pdffileexample-2,/vendor/lib,/system/lib]]`Hi@DCoder在显示pdf时遇到过问题吗?它总是水平的?您是如何解决的?谢谢。您是将文件夹复制粘贴到您的libs目录中的吗?还是.so文件本身?