2016-08-17 85 views
1

我试图通过我的Android应用程序来查看PDF文件,而我使用这个库: https://www.nuget.org/packages/Xamarin.PdfView.Android/的Android,试图Xamarin的Android应用程序中查看PDF

这里是我的代码看喜欢什么:

C# :

using Com.Joanzapata.Pdfview; 
using Java.IO; 

namespace Xamarin_test 
{ 
    [Activity(Label = "Xamarin", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      SetContentView(Resource.Layout.Main); 

      PDFView pdfView = FindViewById<PDFView>(Resource.Id.pdfview); 

      pdfView.FromAsset("test.pdf") 
        .DefaultPage(1) 
        .ShowMinimap(false) 
        .EnableSwipe(true) 
        .Load(); 
     } 
    } 
} 

XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <com.joanzapata.pdfview.PDFView 
     android:id="@+id/pdfview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</LinearLayout> 

,当我尝试运行它,我收到此错误:

了java.lang.RuntimeException:在执行doInBackground时出错()

是什么原因造成的?

谢谢。

编辑,完整的错误日志:

Java.Lang.RuntimeException: An error occured while executing doInBackground() 

08-17 15:09:23.301 E/AndroidRuntime(2153): FATAL EXCEPTION: AsyncTask #1 
08-17 15:09:23.301 E/AndroidRuntime(2153): Process: Xamarin_MuPDF.Xamarin_MuPDF, PID: 2153 
08-17 15:09:23.301 E/AndroidRuntime(2153): java.lang.RuntimeException: An error occured while executing doInBackground() 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at android.os.AsyncTask$3.done(AsyncTask.java:304) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.lang.Thread.run(Thread.java:818) 
08-17 15:09:23.301 E/AndroidRuntime(2153): Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/Xamarin_MuPDF.Xamarin_MuPDF-1/base.apk"],nativeLibraryDirectories=[/data/app/Xamarin_MuPDF.Xamarin_MuPDF-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libvudroid.so" 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.lang.Runtime.loadLibrary(Runtime.java:367) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.lang.System.loadLibrary(System.java:988) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at org.vudroid.core.VuDroidLibraryLoader.load(VuDroidLibraryLoader.java:13) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at org.vudroid.pdfdroid.codec.PdfContext.<clinit>(PdfContext.java:13) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:50) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at com.joanzapata.pdfview.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:1) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at android.os.AsyncTask$2.call(AsyncTask.java:292) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
08-17 15:09:23.301 E/AndroidRuntime(2153):  ... 3 more 
08-17 15:09:26.751 I/Process (2153): Sending signal. PID: 2153 SIG: 9 
+0

请发布完整的错误日志。 – sJy

+0

我已经添加了完整的错误日志。 – afontalv

回答

8

出现这种情况,因为你错过了到libvudroid.so链接。这个库是pdfview所必需的。

你必须

  • 下载从here
  • 库在你的Android项目创建一个文件夹lib
  • 文件夹arm64-v8a, armeabi-v7a, armeabi, x86复制到该文件夹​​
  • 包括libvudroid.so到项目,并设置属性(右键点击文件 - >属性)
    • 生成操作:AndroidNativeLibrary
    • 复制到输出目录:复制始终

enter image description here

故障排除

如果你得到的生成错误:mandroid error XA0000: Invalid create-package command: ...

  • 打开项目属性
  • 的Android选项
  • 高级
  • 选择所有平台(如果所有被选中,取消选择一个,然后重新选择)
  • 保存
  • 重新建造
+2

先生,如果你现在在这里,我会拥抱你!你是超级明星!非常感谢您花时间详细解释发生了什么。我设法得到这个工作!再一次,谢谢你,先生!如果你曾经在亚特兰大,打我,我会带你出去喝酒。 – afontalv