xmlpullparser 的 Android dalvik 转换

标签 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 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 ( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html ),这就是出现此冲突的原因。

我通过从允许使用类的 Android 定义版本的项目中排除 xmlpull 依赖项解决了这个问题。这是我的 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' 
}

关于xmlpullparser 的 Android dalvik 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146142/

相关文章:

java - 使用 gcj 编译的 java 和 XStream。 (异常 : Cannot create XmlPullParser)

android dex 无法合并

android - 计算库(Jar/AAR)中的方法数

android - 单击按钮时,应用程序在 android studio 中崩溃。显示应用程序名称已停止工作

android - ConstraintLayout 是否仍然优于 Jetpack Compose 中的嵌套列和行?

java - android 一次只允许勾选一个复选框

java - XmlPullParser 从 START_DOCUMENT 跳转到 END_DOCUMENT 事件类型

android - 错误:任务 ':app:javaPreCompileDebug'的执行失败。 Android 3.0+ Lombok

android - SOAP 调用仅在真实设备中抛出 XMLPullParser 异常

java - : Lcom/google/android/gms/common/api/Api$zzf; 解析失败