0

実行時例外が発生しました。Android デバイスから PDF ドキュメントを作成したいと考えていました。そのために、iText ライブラリを使用しました。

これはPDFを作成するための私のコードです

Document document = new Document();
PdfWriter.getInstance(document, outStream);

document.open();
document.add(new Paragraph(data));

document.close();

コードは正常に動作します。PDFを正常に作成しています。しかし、実行時に例外が発生します

06-14 10:09:20.491: W/dalvikvm(764): Unable to resolve superclass of Lcom/itextpdf/awt/PdfGraphics2D; (1251)
06-14 10:09:20.491: W/dalvikvm(764): Link of class 'Lcom/itextpdf/awt/PdfGraphics2D;' failed
06-14 10:09:20.491: E/dalvikvm(764): Could not find class 'com.itextpdf.awt.PdfGraphics2D', referenced from method com.itextpdf.text.pdf.PdfContentByte.createGraphics
06-14 10:09:20.491: W/dalvikvm(764): VFY: unable to resolve new-instance 480 (Lcom/itextpdf/awt/PdfGraphics2D;) in Lcom/itextpdf/text/pdf/PdfContentByte;
06-14 10:09:25.280: E/dalvikvm(764): Could not find class 'org.bouncycastle.cert.X509CertificateHolder', referenced from method com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj
06-14 10:09:25.280: W/dalvikvm(764): VFY: unable to resolve new-instance 1612 (Lorg/bouncycastle/cert/X509CertificateHolder;) in Lcom/itextpdf/text/pdf/PdfReader;

クリーンアップとビルドを行い、jar を libs フォルダーに追加して、注文とエクスポート時に選択し、過去 2 日間に多くの調査を行いました。しかし、何も私を助けませんでした。私の知識に基づいて、これらの可能性があるはずです。

  • 外部 jar が正しくロードされていません
  • クラス PdfGraphics2D は、Android では使用できない java.awt.Graphics2D を拡張します。

どんな助けもかなりのものです。

4

2 に答える 2

8

PdfGraphics2Dがextendsであることを発見しました。java.awt.Graphics2Dご存知のようGraphics2Dに、は Android で禁止されているクラスです。

また、BouncyCastle に関連する問題にも遭遇しました。

これは、 Android portの代わりに Java バージョンの iText を使用していることを示しています。Android ポートでは、BouncyCastle を SpongyCastle に置き換え (Android で暗号化を使用する場合に推奨)、禁止されているクラスへのすべての参照を削除しました (たとえばawtおよびnioパッケージ内)。

iTextのAndroid ポートを使用するように切り替えてください。

于 2013-06-14T06:46:53.080 に答える