Dalvik VM 错误: 异常发现 “Javax.xml.namespace.QName.class”

这并不是一个问题。相反,当您使用外部API进行开发和Android时,Android中常见的问题.jar不会复制到您的项目中!


答案 1

在搜索了各种论坛,Google和stackoverflow之后,我似乎自己得到了一个解决方案,并想到了分享它。

  1. 每当您链接外部库时,最好通过创建一个 /lib 文件夹并在那里转储这些 .jar 来链接它(意味着复制文件而不链接它们)。使用 Eclipse -> 构建属性 -> 配置构建路径 ->库选项卡 ->添加外部 Jars 链接它们。将保存在 /lib 文件夹中的必需 .jar 添加到此处。(请注意,Eclipse 中作为“引用库”包含的 jar 将在 /lib 文件夹中消失!但是,不要担心,因为已经发生了适当的链接。另一个注意事项是检查引用的 /lib jar 是否不应该在“生成属性”的“库”选项卡中可见,因为它将被继承。

  2. 另一个主要问题是何时使用Google API。特别是那些使用java / javax的一些核心库函数的那些。要非常小心。错误是,DalvikVM尝试链接这些,但失败了,因为发现了重复项,并且无法决定引用哪一个。下面是错误。

    Dx trouble processing "javax/xml/namespace/QName.class": 
    Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library.
    

在这种情况下,我观察到的是,这个类在xpp3-1.1.4c中使用.jar。如果您已将其复制到 /lib 文件夹中,请将其删除。然后清理项目,并给出一个新的构建。此后,这艘船平稳地航行。

如果存在此类重复,请对其他引用的 .jar 执行此操作。

干杯!


答案 2

这对我有用。我正在使用maven,xpp3-1.1.4c依赖项显示在“Maven依赖项”下;我不得不使用(右键单击依赖项)Maven->“排除Maven Artifact...”来排除它。谢谢一堆 -- 这真的很晦涩难懂。


推荐