0

i am creating an app to view pdf files. I have used pdfviewer.jar On the main page of my app, it will display the pdf file that I have stored in my internal storage but when I click on the item, the application crash.

in my MainActivity.java

package com.example.pdf;

import java.io.File;
import java.io.FilenameFilter;

import net.sf.andpdf.pdfviewer.PdfViewerActivity;

import android.os.Bundle;
import android.os.Environment;

import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends ListActivity {

    String[] pdflist;
    File[] imagelist;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        File images = Environment.getExternalStorageDirectory();
        imagelist = images.listFiles(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return ((name.endsWith(".pdf")));
            }
        });
        pdflist = new String[imagelist.length];
        for (int i = 0; i < imagelist.length; i++) {
            pdflist[i] = imagelist[i].getName();
        }
        this.setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, pdflist));
    }

    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        String path = imagelist[(int) id].getAbsolutePath();
        openPdfIntent(path);
    }

    private void openPdfIntent(String path) {
        try {
            final Intent intent = new Intent(MainActivity.this,DefaultActivity.class);
            intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, path);
            startActivity(intent);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

in my DefaultActivity.java

package com.example.pdf;

import android.os.Bundle;
import net.sf.andpdf.pdfviewer.PdfViewerActivity;

public class DefaultActivity extends PdfViewerActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }

    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;
    }
}

And this is my log cat output

10-31 12:57:30.580: E/AndroidRuntime(1163): FATAL EXCEPTION: main
10-31 12:57:30.580: E/AndroidRuntime(1163): java.lang.NoClassDefFoundError: com.example.pdf.DefaultActivity
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.example.pdf.MainActivity.openPdfIntent(MainActivity.java:50)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.example.pdf.MainActivity.onListItemClick(MainActivity.java:45)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.widget.AdapterView.performItemClick(AdapterView.java:292)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.widget.AbsListView.performItemClick(AbsListView.java:1058)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2514)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.widget.AbsListView.onTouchEvent(AbsListView.java:3180)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.View.dispatchTouchEvent(View.java:5541)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1712)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1912)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1860)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.View.dispatchPointerEvent(View.java:5721)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2890)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2466)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:845)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:859)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.os.Looper.loop(Looper.java:137)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at android.app.ActivityThread.main(ActivityThread.java:4446)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at java.lang.reflect.Method.invokeNative(Native Method)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at java.lang.reflect.Method.invoke(Method.java:511)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-31 12:57:30.580: E/AndroidRuntime(1163):     at dalvik.system.NativeStart.main(Native Method)

I have checked that I declared all activities in the manifest file.

Jolene
  • 149
  • 2
  • 5
  • 14

1 Answers1

0

These are the steps to apply your jar file to your projects:-

  1. just right click on your project and select properties
  2. go to java build path
  3. then select order and export tab
  4. check mark(checkbox) your pdfviewer.jar and click OK...Now clean your project and Run....
Mehul Ranpara
  • 4,245
  • 2
  • 26
  • 39