尝试在Android Studio上使用iText7,我收到以下错误消息:
Didn't find class "java.lang.Character$UnicodeScript" on path: DexPathList
到达document.add(new Paragraph("hello"));
行
在下面的代码中
public void CreatePDF () throws IOException{
File file_pdf = new File("_TEST.pdf");
FileOutputStream fos = new FileOutputStream(file_pdf);
PdfWriter writer = new PdfWriter(fos);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
document.add(new Paragraph("hello"));
document.close();
}
我在\ libs中包含了以下内容:
itext7-io-7.0.1.jar
itext7-kernel-7.0.1.jar
itext7布局-7.0.1.jar
slf4j-api-1.7.22.jar
SLF4J-简单1.7.22.jar
以及以下依赖项:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.22</version>
</dependency>
任何想法有什么不对? 提前致谢
答案 0 :(得分:2)
官方回答:
iText 7需要Java 7.错误告诉您缺少类Character.UnicodeScript
。当您检查API文档时,您会发现此类是在Java 1.7版中引入的:http://docs.oracle.com/javase/7/docs/api/java/lang/Character.UnicodeScript.html(在该页面上查找从:)。我假设您的Android设置使用的是与Java 7不兼容的Dalvik系统版本。您的Android设置中不存在类Character.UnicodeScript
。
您的信息的其他评论:
正如Amedee所说,iText 7没有Android端口,我们可能不会制作这样的端口,因为我们很难销售任何iTextG(或“iText for Android”)许可证,所以我想你唯一的选择就是使用iTextG,这是iText 5的Android端口。
许多开发人员不明白使用AGPL软件意味着所有使用iText的软件必须只是AGPL,并且您在任何其他许可下(例如商业许可证)分发软件的那一刻需要购买商业许可证。 iText软件。此产品或该产品的销售对于iText Group定义技术路线图非常重要。 iTextG的销售数量不佳以及我们很难找到任何在AGPL下使用iTextG的AGPL Android项目,导致Android上iText的优先级非常低。
我正在添加此信息,以防您计划发布后续问题,询问我们为何不为iText 7提供Android端口。