Android 为什么我会得到一个“;找不到PdfGraphics2D“;错误?

Android 为什么我会得到一个“;找不到PdfGraphics2D“;错误?,android,pdf,pdf-generation,itext,Android,Pdf,Pdf Generation,Itext,我遇到了一个运行时异常。我想从android设备创建一个PDF文档。 为此我使用了iText库 这是我创建PDF的代码 Document document = new Document(); PdfWriter.getInstance(document, outStream); document.open(); document.add(new Paragraph(data)); document.close(); 代码运行良好。它正在成功创建PDF。但它在运行时给了我一个例外 06-14

我遇到了一个运行时异常。我想从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文件夹中,并在订购和导出时选择它,在过去的两天里我做了大量的研究。但什么都帮不了我。 据我所知,应该有这些可能性

  • 外部jar没有正确加载
  • 类PdfGraphics2D扩展了java.awt.Graphics2D,这在android中不可用

任何帮助都是值得的

您已经发现
PdfGraphics2D
扩展了
java.awt.Graphics2D
,并且您已经知道
Graphics2D
在Android上是一个被禁止的类

您还遇到了与BouncyCastle相关的问题

这说明您使用的是Java版本的iText,而不是。在中,我们将BouncyCastle替换为SpongyCastle(在Android上使用加密时建议使用),并删除了所有对禁止类的引用(例如在
awt
nio
包中)


如果您在android中使用iText pdf库请切换到使用iText。

所以只需在Proguard文件中写入这三行,以避免出现警告

-dontwarn com.itextpdf.text.pdf.**
-dontwarn org.bouncycastle.**
-dontwarn com.sun.mail.**

尝试此链接已尝试过。不工作同样的问题只发生在Android 8.0中。我试过使用Android版本。现在也不例外。但是文件没有打开。它说‘打开文档时出错’。在文本编辑器中打开文件时,字节是什么样子的?我该怎么做?当我在奥威尔跑步的时候。。。文件保存在某个地方,不是吗?如果没有,您如何打开文档?也许这就是问题所在:Adobe Reader无法打开文件中任何地方都不存在的文档。文件存在。但问题是,它没有内容。