0

私はシミュレーター Android デバイスで Eclipse を使用しています。次の簡単なコードがあります。

File file = new File(this.getFilesDir() + "/example.pdf");
if(!file.exists())
file.createNewFile();
FileOutputStream fop = new FileOutputStream(file);
Document document = new Document();
(…)  

私はそうしDocument document = new Document(); ているので、エラーが発生します:

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

次のように itext.jar が含まれています。

<classpath>
<classpathentry kind="lib" path="assets/itext-pdfa-5.4.0.jar"/>
<classpathentry kind="lib" path="assets/itext-xtra-5.4.0.jar"/>
<classpathentry kind="lib" path="assets/itextpdf-5.4.0.jar"/>
<classpathentry kind="lib" path="assets/itext-pdfa-5.4.0-javadoc.jar"/>
<classpathentry kind="lib" path="assets/itext-pdfa-5.4.0-sources.jar"/>
<classpathentry kind="lib" path="assets/itext-xtra-5.4.0-javadoc.jar"/>
<classpathentry kind="lib" path="assets/itext-xtra-5.4.0-sources.jar"/>
<classpathentry kind="lib" path="assets/itextpdf-5.4.0-javadoc.jar"/>
<classpathentry kind="lib" path="assets/itextpdf-5.4.0-sources.jar"/>
</classpath>

そして、それらはすべてパス「資産」にあります。

4

2 に答える 2

0

Android で作業している場合は、Android ポートを使用することをお勧めします。このポートは、すべての Android デモで使用されています。純粋な Java iText バージョンとの違いは次のとおりです。

  1. AWT、nio、...クラスは一切使用せず、
  2. BouncyCastle の代わりに SpongyCastle を使用して、Android 上の BC に関する既知の問題を回避します。
  3. とにかく Android で動作しないクラスの削除。

NoClassDefFoundErrorクラスが見つからなかった場合にのみ発生するわけではないことに注意してください。あなたの場合:クラスがあります:jarをチェックしてください。このようなエラーは、あいまいな場合にもスローされる可能性があります。たとえば、CLASSPATH に 2 つのバージョンの iText があるためです。もし私があなたなら、iText へのすべての参照を削除してから、iText の Android ポートから新たに始めるでしょう。CLASSPATH のエントリが多すぎると確信しています。

于 2013-03-18T18:21:16.583 に答える
0

あなたのエラーで:

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

Document間違ったクラスをインポートしたようです。

このインポートを試してください:

import org.w3c.dom.Document;
于 2013-03-18T13:13:27.670 に答える