android - NoClassDefFoundError with PDFViewer -
i'm trying implement pdf viewer, application comes detect pdfs stored in sd card, can see in image. http://img225.imageshack.us/img225/3852/pdfs.png
but when click on file view it... error.
this logcat:
06-28 07:32:46.963: warn/dalvikvm(330): unable resolve superclass of lcom/example/trypdf/second; (496) 06-28 07:32:46.983: warn/dalvikvm(330): link of class 'lcom/example/trypdf/second;' failed 06-28 07:32:46.983: error/dalvikvm(330): not find class 'com.example.trypdf.second', referenced method com.example.trypdf.pdfvieweractivity.openpdfintent 06-28 07:32:47.013: warn/dalvikvm(330): vfy: unable resolve const-class 419 (lcom/example/trypdf/second;) in lcom/example/trypdf/pdfvieweractivity; 06-28 07:32:47.013: debug/dalvikvm(330): vfy: replacing opcode 0x1c @ 0x0002 06-28 07:32:47.013: debug/dalvikvm(330): vfy: dead code 0x0004-000e in lcom/example/trypdf/pdfvieweractivity;.openpdfintent (ljava/lang/string;)v 06-28 07:32:47.373: info/activitymanager(59): displayed activity com.example.trypdf/.pdfvieweractivity: 1665 ms (total 1665 ms) 06-28 07:32:52.593: debug/dalvikvm(131): gc_explicit freed 1336 objects / 74064 bytes in 149ms 06-28 07:33:28.634: debug/sntpclient(59): request time failed: java.net.socketexception: address family not supported protocol 06-28 07:33:55.655: debug/androidruntime(330): shutting down vm 06-28 07:33:55.663: warn/dalvikvm(330): threadid=1: thread exiting uncaught exception (group=0x4001d800) 06-28 07:33:55.684: error/androidruntime(330): fatal exception: main 06-28 07:33:55.684: error/androidruntime(330): java.lang.noclassdeffounderror: com.example.trypdf.second 06-28 07:33:55.684: error/androidruntime(330): @ com.example.trypdf.pdfvieweractivity.openpdfintent(pdfvieweractivity.java:46) 06-28 07:33:55.684: error/androidruntime(330): @ com.example.trypdf.pdfvieweractivity.onlistitemclick(pdfvieweractivity.java:41) 06-28 07:33:55.684: error/androidruntime(330): @ android.app.listactivity$2.onitemclick(listactivity.java:321) 06-28 07:33:55.684: error/androidruntime(330): @ android.widget.adapterview.performitemclick(adapterview.java:284) 06-28 07:33:55.684: error/androidruntime(330): @ android.widget.listview.performitemclick(listview.java:3382) 06-28 07:33:55.684: error/androidruntime(330): @ android.widget.abslistview$performclick.run(abslistview.java:1696) 06-28 07:33:55.684: error/androidruntime(330): @ android.os.handler.handlecallback(handler.java:587) 06-28 07:33:55.684: error/androidruntime(330): @ android.os.handler.dispatchmessage(handler.java:92) 06-28 07:33:55.684: error/androidruntime(330): @ android.os.looper.loop(looper.java:123) 06-28 07:33:55.684: error/androidruntime(330): @ android.app.activitythread.main(activitythread.java:4627) 06-28 07:33:55.684: error/androidruntime(330): @ java.lang.reflect.method.invokenative(native method) 06-28 07:33:55.684: error/androidruntime(330): @ java.lang.reflect.method.invoke(method.java:521) 06-28 07:33:55.684: error/androidruntime(330): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 06-28 07:33:55.684: error/androidruntime(330): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 06-28 07:33:55.684: error/androidruntime(330): @ dalvik.system.nativestart.main(native method) 06-28 07:33:55.693: warn/activitymanager(59): force finishing activity com.example.trypdf/.pdfvieweractivity 06-28 07:33:56.213: warn/activitymanager(59): activity pause timeout historyrecord{44fe47a0 com.example.trypdf/.pdfvieweractivity}
i've tried everything:
- create new project , copy classes.
- use other target (apis lvl10),(2.2,_lvl8).
- clean , build
- reset adb.
- use library downloaded pdfviewer site.
but same error:
06-28 07:32:46.983: error/dalvikvm(330): not find class 'com.example.trypdf.second', referenced method com.example.trypdf.pdfvieweractivity.openpdfintent 06-28 07:33:55.684: error/androidruntime(330): java.lang.noclassdeffounderror: com.example.trypdf.second
here can see 2 classes, manifest.
pdfvieweractivity.java
package com.example.trypdf; import java.io.file; import java.io.filenamefilter; import com.example.trypdf.second; import net.sf.andpdf.pdfviewer.pdfvieweractivity; import android.app.listactivity; import android.content.intent; import android.os.bundle; import android.os.environment; import android.view.view; import android.widget.arrayadapter; import android.widget.listview; public class pdfvieweractivity 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]; (int = 0; < 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(pdfvieweractivity.this, second.class); intent.putextra(pdfvieweractivity.extra_pdffilename, path); startactivity(intent); } catch (exception e) { e.printstacktrace(); } } }
second.java
package com.example.trypdf; import net.sf.andpdf.pdfviewer.pdfvieweractivity; import net.sf.andpdf.pdfviewer.r; import net.sf.andpdf.pdfviewer.r.drawable; import net.sf.andpdf.pdfviewer.r.id; import net.sf.andpdf.pdfviewer.r.layout; import android.os.bundle; public class second 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; } }
manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.trypdf" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name="com.example.trypdf.pdfvieweractivity" 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="com.example.trypdf.second" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.default" /> </intent-filter> </activity> </application> </manifest>
thankss!!!
to fix problem need to:
- create named "libs" folder in project. 2 import libraries need project new folder. 2.1. import them: right click in libs folder--> import--> file system--> select .jar , accept.
- clean , build , boot
source: akki
Comments
Post a Comment