首页 文章

多个dex文件定义了landroid / support / annotation / AnimRes

提问于
浏览
59

我将android支持注释添加到我的依赖项的那一刻

compile 'com.android.support:support-annotations:20.0.0'

我收到了这个错误:

错误代码:2输出:UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexException:多个dex文件定义Landroid / support / annotation / AnimRes;在com.android.dx.merge.DexMerger.mergeClassDefs的com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)的com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) (dexMerger.java:533)位于com.android的com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)com.android.dx.merge.DexMerger.merge(DexMerger.java:188) . dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)位于com.android.dx.com上的com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) . 在com.android.dx.command.Main.main(Main.java:103)的com.android.dx.command.dexer.Main.main(Main.java:199)运行(Main.java:230)

build.gradle

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 19
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.crashlytics.android:crashlytics:1.+'
    compile 'com.android.support:support-annotations:20.0.0'
}

还有其他人遇到过这个问题吗?我试过了here的解决方案 .

18 回答

  • 0

    在我的情况下,我在根项目文件夹中的 /build/intermediates/dex-cache/cache.xml 下有一个名为 cache.xml 的文件 . 我删除了这个文件,重建项目,它对我有用 .

  • 0

    我删除了android-support-v4.jar并且它有效 .

    解释 - android-support-v4.jar与我的其他人发生冲突项目\ libs文件的.jar文件**特别是在AS上运行java 8时 .

  • 0

    把android-support-v4.jar放在eclipse的libs文件夹中 . 清理并构建项目 . 它将解决问题 .

  • 2

    在构建和启动时,Android Studio中可能出现这些消息的另一个原因可能是库中应用程序标记的原因 .

    如果您有几个Android库项目作为模块导入 . 进入这些项目并删除 <application> ... </application> 标签以及它们之间的所有内容 . 这些可能会导致构建过程中出现问题以及已提到的支持库问题 .

  • 70

    来自/ platforms / android / libs / delete android-support-v4.jar . 这个对我有用 .

  • 10

    我设法解决了这个问题 . 原因是我将android支持库19.0.0作为依赖项包含在内,但需要19.1.0 . See here for more information

    所以必须如此

    dependencies {
        compile 'com.android.support:support-v4:19.1.0'
        compile 'com.crashlytics.android:crashlytics:1.+'
        compile 'com.android.support:support-annotations:20.0.0'
    }
    
  • 1

    如果将 AppCompat 作为库项目导入,并且在其他地方的库中也有 android-support-annotations.jar ,请确保仅在 AppCompat 库中导入(它已包含此注释库) . 然后删除所有 android-support-annotations.jar 以避免合并此库的多个版本 .

  • 2

    更新Android SDK工具为我修复了它,现在它只是在 android-support-v4.jar 中看到了副本 .

    我在使用ant时遇到了同样的问题,并且过时的 sdk.dir/tools/ant/build.xml 自动包含了注释库 .

  • 7

    清理项目作为临时修复工作,但问题将在下一次编译错误时重新出现 .

    为了更可靠地修复,我不得不将依赖更新到android support-v4com.android.support:support-v4:22.2.0 .

  • 1

    问题是 android-support-annotations.jar 曾经是一个包含android注释的独立库,但由于某种原因,这些注释已经包含在最新版本的 android-support-v4.jar 文件中 .

    删除注释jar解决了这个问题 .

  • 0

    Build-> clean Project,它运作良好

  • 23

    我删除了android-support-v4.jar并且它有效 .

  • 3

    如果这是cordova /离子项目,这对我有用

    将这些行添加到行号22之后的平台/ android下的build.gradle,即 apply plugin: 'android' 之后

    configurations {
       all*.exclude group: 'com.android.support', module: 'support-v4'
    }
    
  • 1

    解决了使用facebook插件的Cordova项目中的这个问题 . 我能够通过从 platforms\android\project.properties 注释掉这一行来成功构建,如图所示:

    # cordova.system.library.1=com.android.support:support-v4:+
    

    并通过从 platforms\android\build.gradle 注释掉这一行,如图所示:

    // compile "com.android.support:support-v4:+"
    

    然后做构建 . 当我安装(katzer / cordova-plugin-local-notifications)添加这些行时,问题就开始了,但是由于它添加到构建中的库已经是facebook插件构建的一部分,所以它产生了冲突 .

  • 0

    正如其他用户所说,排除故障的第一个要素是依赖关系 . 虽然,有时你可能会挣扎数小时而且你没有发现任何问题,所以你可以专注于构建过程 .

    改变the way in which the .dex files are produced有时可以解决问题 . 您可以执行以下步骤:

    • 打开 Build.gradle (app) 文件

    • 搜索任务 dexOptions

    • 将其更改为:

    dexOptions {
      incremental false 
    }
    

    如果在文件中找不到任务,则可以添加它 .

  • 1

    对我来说,原因是新的数据绑定库

    com.android.databinding:dataBinder:1.0-rc2
    

    它以某种方式使用了注释lib的冲突版本,我无法强迫它

    configurations.all {
        resolutionStrategy {
            force group: 'com.android.support', name: 'support-v4', version: '23.1.0'
            force group: 'com.android.support', name: 'appcompat-v7', version: '23.1.0'
            force group: 'com.android.support', name: 'support-annotations', version: '23.1.0'
        }
    }
    

    但是新的 rc3rc4 版本似乎已修复它,所以只需使用这些版本

  • 33

    我有同样的问题,但我从构建文件夹中删除了构建文件

    项目名称/应用程序/编译

    它删除了所有相关的错误 . “无法清理项目”以及“使用$ anim”dex errow

  • 1

    根据您的compileSdkVersion输入 build.gradle 支持注释的依赖关系 . 例如:一个带有 compileSdkVersion 25 的项目你可以提出以下依赖:

    compile 'com.android.support:support-annotations:25.0.1'
    

    这将解决您的问题 .

相关问题