java.lang.ClassNotFoundException:没有找到类“java.lang.Character $ UnicodeScript”

时间:2017-01-09 21:32:32

标签: java android android-studio itext

尝试在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>

任何想法有什么不对? 提前致谢

1 个答案:

答案 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端口。