2016-08-17 86 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

相關問題