2012-02-27 20 views
0

我想用DroidReader在我的android中獲取我的pdf文件的視圖。 我importe很好的應用,並得到沒有錯誤,但是當我吃午飯了,我得到這個錯誤:PDF DroidReader

02-27 21:15:25.433: E/AndroidRuntime(11355): FATAL EXCEPTION: main 
02-27 21:15:25.433: E/AndroidRuntime(11355): java.lang.ExceptionInInitializerError 
02-27 21:15:25.433: E/AndroidRuntime(11355): at de.hilses.droidreader.DroidReaderActivity.onCreate(DroidReaderActivity.java:108) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.os.Looper.loop(Looper.java:130) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at java.lang.reflect.Method.invoke(Method.java:507) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at dalvik.system.NativeStart.main(Native Method) 
02-27 21:15:25.433: E/AndroidRuntime(11355): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load pdfrender: findLibrary returned null 
02-27 21:15:25.433: E/AndroidRuntime(11355): at java.lang.Runtime.loadLibrary(Runtime.java:429) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at java.lang.System.loadLibrary(System.java:554) 
02-27 21:15:25.433: E/AndroidRuntime(11355): at de.hilses.droidreader.PdfRender.<clinit>(PdfRender.java:111) 
02-27 21:15:25.433: E/AndroidRuntime(11355): ... 14 more 

回答

1

看到這一行:

02-27 21:15:25.433: E/AndroidRuntime(11355): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load pdfrender: findLibrary returned null 

你需要pdfrender庫在你classpath

0

應用程序找不到它正在查找的本機庫。如果您有本地代碼的源代碼,則可以在運行該應用程序之前執行ndk-build。這應該解決這個問題。

0

下載這裏的源代碼(Display PDF file inside my android application

activity_main.xml中

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:background="@color/colorPrimaryDark" 
    android:text="View PDF" 
    android:textColor="#ffffff" 
    android:id="@+id/tv_header" 
    android:textSize="18dp" 
    android:gravity="center"></TextView> 

<com.github.barteksc.pdfviewer.PDFView 
    android:id="@+id/pdfView" 
    android:layout_below="@+id/tv_header" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 


</RelativeLayout> 

MainActivity.java 包pdfviewer.pdfviewer;

import android.app.Activity; 
import android.database.Cursor; 
import android.net.Uri; 
import android.provider.OpenableColumns; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 

import com.github.barteksc.pdfviewer.PDFView; 
import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener; 
import com.github.barteksc.pdfviewer.listener.OnPageChangeListener; 
import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle; 
import com.shockwave.pdfium.PdfDocument; 

import java.util.List; 

public class MainActivity extends Activity implements OnPageChangeListener,OnLoadCompleteListener{ 
private static final String TAG = MainActivity.class.getSimpleName(); 
public static final String SAMPLE_FILE = "android_tutorial.pdf"; 
PDFView pdfView; 
Integer pageNumber = 0; 
String pdfFileName; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    pdfView= (PDFView)findViewById(R.id.pdfView); 
    displayFromAsset(SAMPLE_FILE); 
} 

private void displayFromAsset(String assetFileName) { 
    pdfFileName = assetFileName; 

    pdfView.fromAsset(SAMPLE_FILE) 
      .defaultPage(pageNumber) 
      .enableSwipe(true) 

      .swipeHorizontal(false) 
      .onPageChange(this) 
      .enableAnnotationRendering(true) 
      .onLoad(this) 
      .scrollHandle(new DefaultScrollHandle(this)) 
      .load(); 
} 


@Override 
public void onPageChanged(int page, int pageCount) { 
    pageNumber = page; 
    setTitle(String.format("%s %s/%s", pdfFileName, page + 1, pageCount)); 
} 


@Override 
public void loadComplete(int nbPages) { 
    PdfDocument.Meta meta = pdfView.getDocumentMeta(); 
    printBookmarksTree(pdfView.getTableOfContents(), "-"); 

} 

public void printBookmarksTree(List<PdfDocument.Bookmark> tree, String sep) { 
    for (PdfDocument.Bookmark b : tree) { 

     Log.e(TAG, String.format("%s %s, p %d", sep, b.getTitle(), b.getPageIdx())); 

     if (b.hasChildren()) { 
      printBookmarksTree(b.getChildren(), sep + "-"); 
     } 
    } 
} 

}