Xerces lib StreamSource类的NoClassDefFound错误

时间:2014-03-02 14:48:06

标签: java android buildpath

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

  

java.lang.NoClassDefFoundError:mf / javax / xml / transform / stream / StreamSource

来自这行代码:

Source schemaFile = new StreamSource(XSDreader);

这是代码中第一次出现Xerces类实例。

  1. 我从Google代码下载了 Xerces for Android
  2. 在Eclipse中将代码导入为新的 Java项目
  3. 从Xerces项目导出JAR文件(编译正常)
  4. 将Xerces JAR文件添加到我的项目构建路径库
  5. 在代码中,我将所有import行从javax...更改为mf.javax...
  6. 检查.jar文件,它包含预期路径中的StreamSource类 试图将Xerces / bin添加到类路径(它有.class文件),但这没有帮助。
    清理了这个项目,它也没有帮助 检查我的项目和Xerces项目使用相同的JDK合规版本(1.7)

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

    此时我已经没想完了。

1 个答案:

答案 0 :(得分:0)

有关简单的解决方案,请参阅@CommonsWare对该问题的评论。该解决方案工作正常,唯一的问题是,在调试时,调试器无法将代码跟踪到库中,Eclipse不提供指定源的位置的选项。
因此,经过一些试验和错误,我发现了另一个允许调试库代码的解决方案。

  1. 打开项目构建路径配置

  2. 在“库”下,选择“添加库...”

    2.1选择“用户库”类型,然后单击“下一步”。

    2.2点击“用户库...”

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

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

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

    2.6确定所有回到Build path对话框。

  3. 转到“订购和导出”标签,选中新库。