Android Gradle依赖项排除

时间:2017-07-19 08:46:05

标签: java android gradle

关于dependency重复/排除在gradle中的另一个问题。 我的问题看起来像那样:

依赖关系树:

  • TesterApp
    • DataService的
      • FirstWebService
        • MyJava.Common.Classes
    • MyAndroidGraphics
      • MyAndroid.Common.Classes
        • MyJava.Common.Classes
    • MyUiViews
      • MyAndroid.Common.Classes
        • MyJava.Common.Classes

Project Tester App 的build.gradle

dependencies {
  compile(project(':data.services'))
  compile(project(':my.android.graphics'))
  compile(project(':my.ui.views'))
}

Data.Services build.gradle

dependencies {
  compile(project(':first.webservice'))
}

我的Android图形 build.gradle

dependencies {
  compile(project(':my.android.common.classes'))
}

我的用户界面视图 build.gradle

dependencies {
  compile 'me.dm7.barcodescanner:zxing:1.5'
  compile(project(':my.android.common.classes'))
}

我的Android公共类 build.gradle

dependencies {
  compile 'com.android.support:appcompat-v7:25.2.0'
  compile 'com.android.support:support-v4:25.2.0'
  compile 'com.android.support:cardview-v7:25.2.0'
  compile(project(':my.java.common.classes'))
}

我的Java公共类 build.gradle

dependencies {
   compile 'com.mcxiaoke.volley:library:1.0.9'
}

正如您所看到的,重复项是my.java.common.classesmy.android.common.classes,我无法合并,因为这些库在不同的项目中使用,并且通常用于不同的项目。

我试图像这样使用exclude

dependencies {
  compile(project(':data.services')){
    exclude module : ':my.java.common.classes'
  }
  compile(project(':my.android.graphics')){
    exclude module : ':my.java.common.classes'
  }
  compile(project(':my.java.common.classes'))
}

不幸的是没有多大帮助,仍然有

com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK trust_root.bks

 File1: D:\projects\android\my.tester.app\my.java.common.classes\build\libs\my.java.common.classes-1.0.jar
 File2: D:\projects\android\my.tester.app\my.android.common.classes\build\libs\my.android.common.classes-1.2.jar

任何想法,请帮忙。

1 个答案:

答案 0 :(得分:1)

您应该将它添加到build.gradle:

android {
    ...
    packagingOptions {
        pickFirst 'trust_root.bks' // add this
    }
}