0

AndroidでPDFファイルを作成する際にiTextに問題があります。クラッシュし続け、このエラーはlogcatに表示され続けます。

java.lang.NoClassDefFoundError: com.itextpdf.text.Document

これは私のJavaファイルです:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class MainActivity extends Activity {

public static Button button;

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

    button = (Button) findViewById(R.id.Submit);

    button.setOnClickListener(new OnClickListener() 
    {           
        public void onClick(View arg0) 
        {
            // TODO Auto-generated method stub

            toPDF();

        }
    });
}

public void toPDF(){

    Document document=new Document();
    try {
        PdfWriter.getInstance(document,new FileOutputStream("try.pdf"));
        document.open();
        document.add(new Paragraph("Hello Android!! :)"));
        document.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 }

そして私はすでに<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>AndroidManifest.xmlに含まれています

これが私の.classpathです。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src"/>
     <classpathentry kind="src" path="gen"/>
     <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
     <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itextpdf-5.3.4-sources.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-pdfa-5.3.4-sources.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4-javadoc.jar"/>
     <classpathentry kind="lib" path="C:/Users/joan/Documents/Eclipse Workspace/itext-5.3.4/itext-xtra-5.3.4-sources.jar"/>
     <classpathentry kind="output" path="bin/classes"/>
</classpath>

誰かが問題かもしれないと言ったので、私もSDカードを挿入しようとしましたが、それでもクラッシュしました...

誰かが私を助けてくれることを願っています..私はアンドロイドに不慣れです..:|

4

1 に答える 1

2

このエラーが発生する理由は 3 つだけです。

  1. クラスは本当に存在しません。公式の例のコードを使用してこれを取得している場合は、ライブラリの最新のビルドがあることを確認してください。
  2. jar をビルド パスに追加していません。これを修正するには、Eclipse で jar を右クリックし、[ビルド パス] ► [ビルド パスに追加] を実行します。
  3. jar が /libs フォルダーにありません。これは、ビルド パスに jar を追加したときに発生しますが、新しいバージョンの ADT では /libs にある必要があります。そこに置き、ビルドパスに再度追加します。

ほとんどの場合、ADT の新しいバージョンではすべての外部 jar が libs フォルダーにある必要があるため、このようなエラーが発生します。あなたの同僚はおそらくあなたとは異なるバージョンを使用していたため、エラーが発生しました。

あなたの場合、必要なすべての jar ファイルを からitext-5.3.4に移動するだけlibsです。

于 2012-11-19T17:26:11.683 に答える