J'essaie d'implémenter une visionneuse pdf, l'application vient pour détecter les fichiers PDF stockés dans la carte SD, comme vous pouvez le voir dans l'image. Mais quand je clique sur un fichier pour l'afficher ... ERREUR. http://img225.imageshack.us/img225/3852/pdfs.pngjava.lang.NoClassDefFoundError lors de l'ouverture pdf
C'est le LogCat:
06-28 07:32:46.963: WARN/dalvikvm(330): Unable to 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): Could not find class 'com.example.trypdf.Second', referenced from method com.example.trypdf.PDFViewerActivity.openPdfIntent
06-28 07:32:47.013: WARN/dalvikvm(330): VFY: unable to 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 at 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 by 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 with 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): at com.example.trypdf.PDFViewerActivity.openPdfIntent(PDFViewerActivity.java:46)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at com.example.trypdf.PDFViewerActivity.onListItemClick(PDFViewerActivity.java:41)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.app.ListActivity$2.onItemClick(ListActivity.java:321)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.widget.AdapterView.performItemClick(AdapterView.java:284)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.widget.ListView.performItemClick(ListView.java:3382)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.os.Handler.handleCallback(Handler.java:587)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.os.Handler.dispatchMessage(Handler.java:92)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.os.Looper.loop(Looper.java:123)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at android.app.ActivityThread.main(ActivityThread.java:4627)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at java.lang.reflect.Method.invokeNative(Native Method)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at java.lang.reflect.Method.invoke(Method.java:521)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-28 07:33:55.684: ERROR/AndroidRuntime(330): at 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 for HistoryRecord{44fe47a0 com.example.trypdf/.PDFViewerActivity}
J'ai essayé presque tout:
- Créer un nouveau projet et copier les classes.
- Utiliser une autre cible (APIS lvl10), (2.2, _lvl8).
- Nettoyer et construire
- Réinitialiser ADB.
- Utilisez la bibliothèque téléchargée PDFViewer d'un autre site.
Mais je reçois toujours la même erreur:
06-28 07:32:46.983: ERROR/dalvikvm(330): Could not find class 'com.example.trypdf.Second', referenced from method com.example.trypdf.PDFViewerActivity.openPdfIntent
06-28 07:33:55.684: ERROR/AndroidRuntime(330): java.lang.NoClassDefFoundError: com.example.trypdf.Second
Ici vous pouvez voir mes deux classes, ainsi que la MANIFESTE.
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];
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(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 !!!
http://stackoverflow.com/questions/9857539/noclassdeffounderror-when-googleanalyticstracker-getinstance/9857669#9857669 – Akram
rapide, simple, et très bonne réponse! – jlopez
vous pouvez upvote cette réponse aussi. Comme maintenant vous avez previledge pour le faire – Akram