一尘不染

使用Android Studio将iTextG包含在Android项目中

java

在Android Studio中包含iTextG时出现以下错误,

com.android.dex.DexException: Multiple dex files define Lcom/itextpdf/awt/geom/AffineTransform;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)

我不知道为什么,但似乎这个库中也有awt。这就是我包括的方式:

  1. http://sourceforge.net/projects/itextg/下载itextg
  2. 提取jar文件
  3. 将itextg-5.5.4.jar复制到app目录中的libs文件夹
  4. 摇篮清洁

为什么awt仍在库中?


阅读 538

收藏
2020-12-03

共1个答案

一尘不染

请仔细阅读该异常。它谈论com.itextpdf.awt。那和禁止的是不一样的java.awt

您关于 awt仍在库中的
指控是错误的。该com.itextpdf.awt包在那里可以替换禁止的AWT类。这些替换类完全有效,可以在Android上使用。

错误消息中说明了您遇到的问题:com.itextpdf.awt.geom.AffineTransform在不同的DEX文件中定义了该类。这意味着您不仅在使用iTextG5.5.x。您的设备上有多个iTextG。全部删除它们,并确保仅添加一个iTextG实例。

2020-12-03