针对xmlpullparser的Android dalvik转换

针对xmlpullparser的Android dalvik转换,android,xmlpullparser,dex,Android,Xmlpullparser,Dex,我正在开发一个Android应用程序,其中一个组件我可以在Android之外测试,因为它不使用任何Android代码 它使用xstream,我有以下库: xstream1.4.6 xpp3-min-1.1.4c xmlpull-1.1.3.1 当我在Android之外对代码进行单元测试时,一切正常 当我尝试将其与Android一起使用时,会出现以下错误: [2014-01-15 18:59:23 - Dex Loader] Unable to execute dex: Multiple dex

我正在开发一个Android应用程序,其中一个组件我可以在Android之外测试,因为它不使用任何Android代码

它使用xstream,我有以下库: xstream1.4.6 xpp3-min-1.1.4c xmlpull-1.1.3.1

当我在Android之外对代码进行单元测试时,一切正常

当我尝试将其与Android一起使用时,会出现以下错误:

[2014-01-15 18:59:23 - Dex Loader] Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser;
[2014-01-15 18:59:23 - AndroidMentor] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lorg/xmlpull/v1/XmlPullParser;
这是一款全新的android应用程序/android junit应用程序。我试过删除垃圾箱、清理垃圾等,但没有用。就这一个,其他的没有任何问题


我需要这个pullparser,因为其他的对我来说似乎不能与xstream一起工作。

我在一个单独开发的项目中遇到了同样的问题,我试图与一个android应用程序集成。问题在于Android API定义了类XmlPullParser(),这就是为什么会出现这种冲突

我通过从项目中排除xmlpull依赖项解决了这个问题,该依赖项允许使用Android定义的类版本。这是my build.gradle文件查找应用程序模块的方式(仅在依赖项部分说明排除):

语法很重要。它必须是那种形式

compile (project(':project-name')) {
        exclude group: 'group-name', module: 'module-name' 
}

用作组名和模块名的内容取决于要从中排除的项目。进一步阅读:
compile (project(':project-name')) {
        exclude group: 'group-name', module: 'module-name' 
}