【问题标题】:Android dalvik conversion for xmlpullparserxmlpullparser 的 Android dalvik 转换
【发布时间】:2014-01-15 19:09:32
【问题描述】:

我正在开发一个 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 xmlpullparser dex


    【解决方案1】:

    我在尝试与 Android 应用程序集成的单独开发项目中遇到了同样的问题。问题是 Android API 定义了 XmlPullParser 类 (https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html),这就是发生这种冲突的原因。

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

    dependencies {
        compile (project(':epublib:epublib-core')) {
            exclude group: 'xmlpull'
        }
        compile 'com.android.support:appcompat-v7:21.0.+'
        compile 'com.android.support:support-v4:21.0.+'
    }
    

    语法很重要。它必须是格式

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多