Java Xerces lib StreamSource类的NoClassDefFound错误

Java Xerces lib StreamSource类的NoClassDefFound错误,java,android,buildpath,Java,Android,Buildpath,我在运行时遇到以下错误: NoClassDefFoundError:mf/javax/xml/transform/stream/StreamSource 从这一行代码: Source schemaFile = new StreamSource(XSDreader); 这是代码中第一次出现Xerces类实例 我从谷歌代码下载了Xerces for Android 在Eclipse中将代码作为新的Java项目导入 从Xerces项目导出JAR文件(编译确定) 将Xerces JAR文件添加到我的项

我在运行时遇到以下错误:

NoClassDefFoundError:mf/javax/xml/transform/stream/StreamSource

从这一行代码:

Source schemaFile = new StreamSource(XSDreader);
这是代码中第一次出现Xerces类实例

  • 我从谷歌代码下载了Xerces for Android
  • 在Eclipse中将代码作为新的Java项目导入
  • 从Xerces项目导出JAR文件(编译确定)

  • 将Xerces JAR文件添加到我的项目构建路径库中
  • 在代码中,我将所有
    import
    行从
    javax…
    更改为
    mf.javax…
  • 检查了.jar文件,它在预期路径中包含类StreamSource
    试图将Xerces/bin添加到类路径(它有.class文件),但没有帮助。
    清理了项目,也没有任何帮助。
    选中我的项目和Xerces项目使用相同的JDK合规版本(1.7)

    调试了代码,到了
    VMClassLoader
    找不到类的地步,无法深入挖掘


    此时,我已经没有想法了。

    有关简单的解决方案,请参阅@commonware对该问题的评论。该解决方案工作得很好,唯一的问题是调试时,调试器无法跟随代码进入库,并且Eclipse不提供指定源代码位置的选项。
    因此,经过一些尝试和错误,我找到了另一个解决方案,也允许调试库代码

  • 打开项目生成路径配置

  • 在“库”下选择“添加库…”

    2.1选择“用户库”类型并单击下一步

    2.2单击“用户库…”

    2.3添加新库,根据需要命名。它将被创建为空

    2.4选择“添加JAR文件”,浏览并选择xerces JAR文件

    2.5单击“源附件”行并将其指向xerces的src文件夹

    2.6“确定”返回“生成路径”对话框

  • 转到“订购和导出”选项卡,并将新库标记为选中


  • 我认为这些项目中使用的Android项目和LIB应该使用JDK1.6。使用1.7编译的JAR文件是NoClassDefFoundError的常见原因,因为使用1.7编译的类没有打包到apk文件中。@Lecho我尝试了你的建议,但没有解决问题。“将Xerces JAR文件添加到我的项目构建路径库中”--撤消该文件,然后将JAR放入
    libs/
    ,就像在使用Eclipse进行Android开发时使用任何其他JAR一样。“试图将Xerces/bin添加到类路径”--也撤消该操作。@有效的公共软件。现在我被“www.w3.org/2001/XMLSchema”绊住了,SchemaFinder没有识别出一个有效的模式,但这是另一个单独的问题