-1

在 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还在图书馆?

4

1 回答 1

1

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

您关于awt 仍在图书馆中的说法是错误的。该com.itextpdf.awt包用于替换禁止的 AWT 类。这些替换类本身是完全有效的,可以在 Android 上使用。

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

于 2015-06-28T11:31:19.723 回答