【问题标题】:Including iTextG in an Android Project using Android Studio使用 Android Studio 在 Android 项目中包含 iTextG
【发布时间】:2015-06-28 10:26:03
【问题描述】:

在 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 还在库中?

【问题讨论】:

标签: java android itext itextg


【解决方案1】:

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

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

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

【讨论】:

  • 有没有使用 itexg & xmlworker 的安卓示例项目?
  • 我知道 iText Group 的工程师已经对其进行了测试,并且从第一次尝试就可以正常工作。有什么问题?
  • 其实我才意识到问题只出在com.itextpdf.tool:xmlworker:5.5.6,使用的时候报错:com.android.dex.DexException: Multiple dex 文件定义 Lcom/itextpdf/awt/geom/AffineTransform;你知道为什么会出现这个问题吗?
  • 不,AffineTransform 不是 XML Worker 的一部分。我能想到的唯一问题是使用不同版本的 iTextG。例如:将 iTextG 5.5.0 与 XML Worker 5.5.6 一起使用。
  • 我尝试使用相同的版本但同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
相关资源
最近更新 更多