Question

I have tried to integrate this PDF Viever, and i am getting this crash message:

05-31 11:20:48.717: D/ddm-heap(235): Got feature list request

05-31 11:21:16.117: D/dalvikvm(235): newInstance failed: p0 i0 [0 a1

05-31 11:21:16.127: D/AndroidRuntime(235): Shutting down VM

05-31 11:21:16.127: W/dalvikvm(235): threadid=3: thread exiting with uncaught exception (group=0x4001b188)

05-31 11:21:16.127: E/AndroidRuntime(235): Uncaught handler: thread main exiting due to uncaught exception

05-31 11:21:16.137: E/AndroidRuntime(235): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{net.sf.andpdf.pdfviewer/net.sf.andpdf.pdfviewer.PdfViewerActivity}: 
java.lang.InstantiationException: net.sf.andpdf.pdfviewer.PdfViewerActivity

05-31 11:21:16.137: E/AndroidRuntime(235):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)

This is what i try to implement : https://github.com/jblough/Android-Pdf-Viewer-Library

The help text for integrating the activity says:

1) Add PdfViewer.jar into your project's build path

2) Copy the following drawable resources from PdfViewer/res/drawable into YourProject/res/drawable
     left_arrow.png
     right_arrow.png
     zoom_in.png
     zoom_out.png

3) Copy the following layout resources from PdfViewer/res/layout into YourProject/res/layout
     dialog_pagenumber.xml
     pdf_file_password.xml

!!THIS IS WHERE THE PROBLEM LIES!! - SE BELOW

4) ***Derive your PDF activity from net.sf.andpdf.pdfviewer.PdfViewerActivity***

5) Using the default drawables and layouts:
     public int getPreviousPageImageResource() { return R.drawable.left_arrow; }
     public int getNextPageImageResource() { return R.drawable.right_arrow; }
     public int getZoomInImageResource() { return R.drawable.zoom_in; }
     public int getZoomOutImageResource() { return R.drawable.zoom_out; }
     public int getPdfPasswordLayoutResource() { return R.layout.pdf_file_password; }
     public int getPdfPageNumberResource() { return R.layout.dialog_pagenumber; }
     public int getPdfPasswordEditField() { return R.id.etPassword; }
     public int getPdfPasswordOkButton() { return R.id.btOK; }
     public int getPdfPasswordExitButton() { return R.id.btExit; }
     public int getPdfPageNumberEditField() { return R.id.pagenum_edit; }

6) Invoke your PdfViewActivity derived with the following code:
     Intent intent = new Intent(this, YourPdfViewerActivity.class);
     intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "PATH TO PDF GOES HERE");
     startActivity(intent);

I have tried integrating the pdfviewer activity .jar both as External JAR or implementing it in the assets folder and loading the Jar from there. The PdfViewer activity is in the src class folder (sf.net.andpdf.....), which i have also named 100% like the code was "created".

Manifest:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".Niels"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

     <activity android:name=".PdfViewerActivity" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.PDFVIEWERACTIVITY" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
     </activity>        
    <activity android:name=".PdfViewerActivity" />               
</application>

Niels.Java:

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.button1 : 

            try{    
        Intent intent = new Intent(this, PdfViewerActivity.class /*i called this without "Your" as the actual class is named without "Your"*/ );
         intent.putExtra(net.sf.andpdf.pdfviewer.PdfViewerActivity.EXTRA_PDFFILENAME, "R.drawable.untitled" /*-> untitled.pdf*/);
         startActivity(intent); }
            catch (Exception e){                        
            e.printStackTrace();
            }

So any ideas of what i am doing wrong?

Was it helpful?

Solution

OK, the problem was a missing instatiation of the pdfactivity.

I created new class :

PdfReader.java :

package net.sf.andpdf.pdfviewer;

public class PdfReader extends PdfViewerActivity {
@Override
public int getPreviousPageImageResource() {
    // TODO Auto-generated method stub
    return 0;
}

because of this i changed this section :

public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1 : 
        try {   
            Intent intent = new Intent(this, PdfReader.class /*the name changed*/);
            intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "R.drawable.untitled");
            startActivity(intent); 
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

and lastly i added the new activity to the manifest as well.

This solved this problem, i though got a new problem with "unable to resolve superclass" - which is going into a new question.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top