gradle排除编译组

时间:2018-01-21 10:07:20

标签: android gradle android-gradle build.gradle

构建应用时出现此错误:

  

addJar(... facebookadapter-4.0.3.jar):条目
  重复条目:com / facebook / ads / AbstractAdListener.class

我得到这个的原因是我的应用程序编译一个属于适配器的Facebook模块和一个原始SDK的一个:

  

compile('com.ironsource.adapters:facebookadapter:4.0.3@jar')   编译'com.facebook.android:audience-network-sdk:4.27.0'       编译'com.google.ads.mediation:facebook:4.27.0.0'

所以作为一个解决方案,我试图从包含适配器jar编译语句的模块中排除这个组:

compile ('com.ironsource.adapters:facebookadapter:4.0.3@jar') {
    exclude (group: 'com/facebook/ads')
}

但是,当我再次构建我的应用程序时,它无法从同一个适配器中说明相同的原因

知道没有排除课程的原因吗?

1 个答案:

答案 0 :(得分:3)

看起来exclude块语法不正确。尝试

compile ('com.ironsource.adapters:facebookadapter:4.0.3@jar') {
  exclude group: 'com.facebook.ads'
}

<强>更新

所以看起来facebookadatpeter里面包含了这个类。您不能从jar文件中排除某个类,但排除仅适用于每个依赖项级别。

如果你绝对需要这个适配器,你可以尝试从所有其他依赖项中排除facebook ads传递依赖。

configurations {
    all*.exclude group: 'com.facebook.ads'
}