使用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。 这是我包括它的方式:
- 从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类。 这些替换类完全有效,可以在Android上使用。
您遇到的问题在错误消息中说明:类com.itextpdf.awt.geom.AffineTransform
在不同的DEX文件中定义。 这意味着您使用的不仅仅是iTextG 5.5.x. 您的设备上有多个iTextG。 全部删除它们并确保只添加一个iTextG实例。