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

在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. Gradle清洁

为什么awt还在图书馆?

请仔细阅读例外情况。 它谈到了com.itextpdf.awt 。 这与禁止的java.awt

你关于awt仍然在图书馆的指控是错误的。 com.itextpdf.awt包用于替换禁用的AWT类。 这些替换类完全有效,可以在Android上使用。

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