【问题标题】:Appcompat-v7 conflict in androidandroid中的Appcompat-v7冲突
【发布时间】:2026-02-02 01:10:01
【问题描述】:

我遇到了一个棘手的问题。在我的项目中,我有一个包含 appcompat-v7 兼容性库的库 (.aar) 文件。现在在我的项目中,我在 gradle.build (app) 文件的依赖部分下还有另一个 appcompat-v7 ..

问题是当我运行应用程序时,它会抛出异常提示

UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim;

这是我的应用程序 gradle.build(app) 文件相关部分(我认为是这样)

repositories {
      flatDir {
        dirs 'libs'
      }
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile(name: 'conversityChat-debug', ext: 'aar') {
        exclude group: 'com.android.support', module: 'support-v7'
    }
}

这是我的图书馆 gradle.build(app) 文件相关部分(我想是的)

dependencies {
compile project(':androidwebsocketsmaster')
compile 'com.android.support:appcompat-v7:22.2.1'
compile files('libs/acra-4.5.0.jar')
compile files('libs/universal-image-loader-1.9.4.jar')
}

我正在使用 android studio.. 我知道这个问题之前已经被问过,我已经尝试了那里建议的所有可能的解决方案。可悲的是,他们都没有帮助...请帮帮我

【问题讨论】:

    标签: android android-support-library android-library


    【解决方案1】:

    将以下代码添加到您的 gradle 中:

    defaultConfig {
            ...
            minSdkVersion 14
            targetSdkVersion 21
            ...
    
            // Enabling multidex support.
            multiDexEnabled true
        }
    

    添加下面的依赖并添加HttpCore和HttpClient。

    dependencies {
      compile 'com.android.support:multidex:1.0.0'
    }
    

    欲了解更多信息,请查看以下链接:

    https://developer.android.com/tools/building/multidex.html

    谢谢..!!

    【讨论】:

      【解决方案2】:

      删除

      compile 'com.android.support:appcompat-v7:22.2.1'
      

      从您的外部级别 build.gradle 文件(顶部文件)中,您只需要在项目级别的 build.gradle 文件中使用它。

      【讨论】:

      • 我的项目级 build.gradle 文件中没有这个。顶部是应用程序 build.gradle (app) 文件,底部是自定义库 build.gradle 文件。 ..你能更具体一点吗?
      • 你有两个 build.gradle 文件,一个在你的 app 目录下,一个在你项目的根目录下。您希望将 appcompat 依赖项放在应用程序之一而不是根应用程序中。错误是说您指定了两次。