java.lang.ClassNotFoundException : Didn't find class "java.lang.Character$UnicodeScript" 异常

标签 java android android-studio itext

尝试在 Android Studio 上使用 iText7,我收到以下错误消息:

在路径中找不到类“java.lang.Character$UnicodeScript”: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-layout-7.0.1.jar

slf4j-api-1.7.22.jar

slf4j-simple-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>

有什么问题吗? 提前致谢

最佳答案

官方回答:

iText 7 需要 Java 7。该错误提示您缺少类 Character.UnicodeScript。查看API文档,发现Java 1.7版本引入了这个类:http://docs.oracle.com/javase/7/docs/api/java/lang/Character.UnicodeScript.html (在该页面上查找 Since:)。我假设您的 Android 设置使用与 Java 7 不兼容的 Dalvik 系统版本。类 Character.UnicodeScript 不在您的 Android 设置中。

对您的信息的补充说明:

正如 Amedee 指出的那样,iText 7 没有 Android 端口,我们可能不会制作这样的端口,因为我们几乎不出售任何 iTextG(或“iText for Android”)许可证,所以我猜你唯一的选择是使用 iTextG,它是 iText 5 的 Android 端口。

许多开发人员不明白使用 AGPL 软件意味着所有使用 iText 的软件都必须仅是 AGPL,并且当您根据任何其他许可证(例如商业许可证)分发软件时需要购买商业许可证iText 软件。这个或那个产品的销售对于 iText Group 定义技术路线图很重要。 iTextG 的低销量以及我们几乎找不到任何在 AGPL 下使用 iTextG 的 AGPL Android 项目,导致 iText 在 Android 上的优先级非常低。

我添加此信息是为了防止您计划发布后续问题来询问我们为什么不为 iText 7 提供 Android 端口。

关于java.lang.ClassNotFoundException : Didn't find class "java.lang.Character$UnicodeScript" 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41557329/

相关文章:

android - 如何以编程方式关闭应用程序?

java - 我正在尝试构建我的应用程序,但收到此错误 : AAPT2 process unexpectedly exit. 错误输出

android - build 项目 : outOfMemory (Android studio 3. 4)

java - 如果实现 AutoCloseable,帮助调用 close()?

java - Android中如何管理数据

java - 执行AsyncTask后刷新TextView

android - AS 找不到 BottomSheetBehavior_Params、_behavior_peekHeight 和 _behavior_hideable

java - Java 中的并发排序

java - Firebase - 当数据根据用户记录更新时如何使适配器逻辑

Java 程序特化 - 它是什么?我不明白