使用Simple XML并在Android中获取NoClassDefFoundError

时间:2011-08-29 08:38:59

标签: java android xml-serialization simple-framework

我正在尝试使用Simple XML在我的Android应用程序中将我的java对象转换为XML格式。

我在

NoClassDefFoundError
Serializer serializer = new Persister();

java.lang.NoClassDefFoundError:org.simpleframework.xml.core.Persister

我在项目类路径中有simple-xml-2.6.1.jar,当我得到NoClassDefFoundError时,我也将这3个jar放在类路径中

stax-1.2.0.jar

stax-api-1.0.1.jar

xpp3-1.1.3_8.jar

但没有用。

仍有NoClassDefFoundError

任何形式的帮助都将不胜感激。谢谢。

6 个答案:

答案 0 :(得分:21)

您是否在Build Path配置中的“ Order and Export ”下检查了Simple XML?我刚刚更新到Android的最新SDK Eclipse插件之后遇到了这个问题,已成功使用Simple几个月。

出于某种原因,在更新之后,我不得不去:

  • 在“订单和导出
  • 下查看simple-xml-2.6.2.jar
  • 清理我的项目(重要

在这两个步骤之后,问题就消失了。

答案 1 :(得分:6)

我解决了与修改Java Build路径相同的问题。

我今天安装了Android DDMS 17.0.0.v201203161636-291853并且NoClassDefFoundError出现了。

如何修复 - >选中针对simple-xml依赖关系的复选框,并将其优先级设置为高于yourproject/src/main/java

enter image description here

答案 2 :(得分:2)

您的类路径中不需要这三个其他jar。

确保您的类路径看起来像这样,并且您将jar文件放在lib文件夹中(为了惯例):

project build path

将库添加到构建路径

add to build path

答案 3 :(得分:0)

您收到此错误,因为您可能没有将任何活动声明到清单文件中。所以请将它添加到您的清单文件中,如下所示:

 <activity android:name=".DatabaseActivity"></activity>

这里DatabaseActivity是我的应用程序的活动。 试试吧。

答案 4 :(得分:0)

当您将应用程序部署到您的设备(或模拟器)时,您是否收到有关您尝试包含的jar的任何错误?并非所有的罐子都适用于Android。较旧的代码可能会出现问题您可能需要获取源代码并重新编译您感兴趣的jar。这可确保字节码与Android兼容。我之前在使用一些罐子时遇到了这个错误,它说即使有错误也能为我工作。它们也是xml相关的(不是SimpleXML)。

答案 5 :(得分:0)

这有点奇怪,但这对我有用。

Serializer serializer;        
Persister persiter = new Persister();
serializer = persiter;