代码之家  ›  专栏  ›  技术社区  ›  Damnum

Android gradle内置任务期间重复输入:transformClassesWithJarMergingAndroidTest

  •  0
  • Damnum  · 技术社区  · 9 年前

    我在用Gradle构建Android应用程序时遇到以下异常:

    Execution failed for task ':transformClassesWithJarMergingForGoogleGermanDebugAndroidTest'.
    > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/hamcrest/BaseDesc
    

    问题似乎是在我的构建中。我声明的gradle文件:

    testCompile 'org.hamcrest:hamcrest-all:1.3'
    androidTestCompile 'org.hamcrest:hamcrest-all:1.3'
    

    然而,我需要单元测试和集成测试的依赖关系。如何解决这个问题?

    3 回复  |  直到 9 年前
        1
  •  4
  •   Damnum    9 年前

    问题是另一个罐子(Mockito)包括 hamcrest-core 作为传递依赖。此模块包含包名称下的所有类 org.hamcrest.* 。因此产生了冲突。解决方案是:

    configurations {
        all*.exclude group: 'org.hamcrest', module: 'hamcrest-core'
    }
    

    如本文所述: https://docs.gradle.org/current/userguide/dependency_management.html 第23.4.7章

        2
  •  0
  •   Prerak Sola    9 年前

    尝试添加 exclude 重复条目的参数。

    androidTestCompile 'org.hamcrest:hamcrest-all:1.3' {
        exclude module: 'BaseDesc'
    }
    
        3
  •  -3
  •   Ori Lentz    9 年前
     buildTypes {
           release {
              multiDexEnabled true;
          }
     }
    

    试试这个这个应该管用