【问题标题】:Unable to execute dex: Multiple dex files define Lorg/apache/harmony/awt/internal/nls/Messages无法执行dex:多个dex文件定义了Lorg/apache/harmony/awt/internal/nls/Messages
【发布时间】:2013-08-11 15:48:45
【问题描述】:

我正在开发一个 android 应用程序,它使用 droidtext 生成 PDF 并将其作为电子邮件的附件发送,而不调用电子邮件客户端。

我正在使用droidtextjava mail api来实现这一点。我的lib目录如下。最低 SDK 版本 8 !!

电子邮件需要activation.jar、additional.jar和mail.jar,生成pdf需要droidtext.jar。当我运行应用程序时出现错误

[2013-08-11 21:09:04 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/apache/harmony/awt/internal/nls/Messages;
[2013-08-11 21:09:04 - SuperResume] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/apache/harmony/awt/internal/nls/Messages;

对它的解决有什么建议吗??

【问题讨论】:

  • 您找到解决此问题的方法了吗?

标签: android android-intent jakarta-mail android-droidtext


【解决方案1】:

发生这种情况是因为一些 awt 依赖类是在 additionalnal.jar 和 droidText.0.5.jar 中定义的。解决此问题的最简单方法是在两个库之一中重命名有问题的包。

例如查看 droidtext 作为 Android 库项目,如下所述:https://code.google.com/p/droidtext/wiki/GettingStarted,然后将 org.apache.harmony 包重构/重命名为其他名称

【讨论】:

  • 嗯...您确实知道 DroidText 基于 iText 2.1.7 并且不再使用该过时版本是不明智的。请参阅 lowagie.com/itext2 并请使用 sourceforge.net/projects/itextg 而不是 DroidText。 iTextG 不需要 Apache Harmony。顺便说一句:我是 Bruno Lowagie,每次您导入 com.lowagie 时都会提到我的名字。
  • 是的。我知道您是 iText 的创建者,并且 droidText 基于 2.1.7 分支。像许多其他项目(例如 jasper 报告)一样,我决定坚持使用最新的 LGPL/MPL 版本。 AGPL 许可证更改使新的 iText 版本对我来说不是一个可行的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-12
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多