使用 Android Studio 在 Android 项目中包含 iTextG
Including iTextG in an Android Project using Android Studio
在 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。这就是我包含它的方式:
- 从 http://sourceforge.net/projects/itextg/
下载 itextg
- 解压 jar 文件
- 复制itextg-5.5.4.jar到app目录下的libs文件夹
- Gradle干净
为什么 awt 还在图书馆里?
请仔细阅读例外情况。它谈到 com.itextpdf.awt
。那和禁止的java.awt
.
不一样
您关于 awt 仍在图书馆中的说法 是错误的。 com.itextpdf.awt
包用于替换禁止的 AWT classes。这些替换 classes 本身是完全有效的,可以在 Android.
上使用
错误消息中解释了您遇到的问题:class com.itextpdf.awt.geom.AffineTransform
在不同的 DEX 文件中定义。这意味着您使用的不仅仅是 iTextG 5.5.x。您的设备上有多个 iTextG。将它们全部删除并确保只添加一个 iTextG 实例。
在 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。这就是我包含它的方式:
- 从 http://sourceforge.net/projects/itextg/ 下载 itextg
- 解压 jar 文件
- 复制itextg-5.5.4.jar到app目录下的libs文件夹
- Gradle干净
为什么 awt 还在图书馆里?
请仔细阅读例外情况。它谈到 com.itextpdf.awt
。那和禁止的java.awt
.
您关于 awt 仍在图书馆中的说法 是错误的。 com.itextpdf.awt
包用于替换禁止的 AWT classes。这些替换 classes 本身是完全有效的,可以在 Android.
错误消息中解释了您遇到的问题:class com.itextpdf.awt.geom.AffineTransform
在不同的 DEX 文件中定义。这意味着您使用的不仅仅是 iTextG 5.5.x。您的设备上有多个 iTextG。将它们全部删除并确保只添加一个 iTextG 实例。