错误:"重复条目:android/support/v7/appcompat/R$anim.class"

6
构建应用程序会生成以下错误:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/appcompat/R$anim.class

我已经多次清理和构建项目,但仍然无法解决问题。它在gradle build中包含以下内容:

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

它还通过其aar文件使用库。该库项目在其gradle构建中也具有上述内容。
有人可以提供如何解决这个问题的提示吗?

删除重复项。就这么简单。如果您有一个已经为您编译过某些内容的 AAR 文件,则无需再次进行编译。 - OneCricketeer
@cricket_007 怎么去掉重复的内容?我尝试了:exclude module: 'appcompat-v7',但是没有帮助。你是不是指的是不包括“compile 'com.android.support:appcompat-v7:23.3.0'”?这个应用需要appcompat-v7,没有它会出现错误。 - Hong
它还通过其AAR文件使用库。我假设AAR文件也需要appcompat库?因此,您可能会遇到重叠依赖项,从而导致错误。如果该AAR项目已经包含它,则您的代码不需要那个编译行。 - OneCricketeer
@cricket_007 我终于找到了罪魁祸首。确实是最近的gradle升级。在将classpath 'com.android.tools.build:gradle:1.0.0'更改为classpath 'com.android.tools.build:gradle:2.0.0'后,一切都正常工作了。我不知道为什么。Android Studio中的gradle东西对我来说一直是一个灰盒子。如果您能回答并解释一下,我会很乐意接受它。 - Hong
嗨,我遇到了同样的问题.. 你解决了吗? - Nahuel Barrios
显示剩余3条评论
1个回答

5

几天前我遇到了同样的问题。

原因 - 如您所述,“该库项目也在其gradle构建中具有上述内容”,实际上系统无法理解将采用哪个依赖关系(应用程序的-compile'com.android.support:appcompat-v7:23.3.0'还是模块项目的-compile'com.android.support:appcompat-v7:23.3.0'),所以它会向您表示存在重复条目

如何解决 -

步骤1 - 只需清除/构建项目。 转到Build-> Clean / Build Project。

步骤2 - 在终端中,在根项目文件夹中执行./gradlew clean *

步骤3 - 您必须从一个依赖项中排除您的组

compile('com.android.support:design:23.2.1') {
    exclude group: 'com.android.support', module: 'support-v7'
}

步骤四 - 看看这个很棒的答案 https://dev59.com/VWMl5IYBdhLWcg3w7qhq#19022328

我使用的解决方案是 -

我只在模块项目级别的gradle文件中保留了一个依赖,而将另一个依赖从应用级别gradle文件中删除,并排除了其中存在anim类的support-v4。

  compile 'com.android.support:appcompat-v7:23.2.1'
        compile('com.android.support:design:23.2.1') {
            exclude group: 'com.android.support', module: 'support-v4'
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接