gradle 从编译中排除组

Mic*_*l A 2 android gradle build.gradle android-gradle-plugin

构建我的应用程序时出现此重复错误:

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

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

编译 ('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')
}
Run Code Online (Sandbox Code Playgroud)

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

知道为什么不排除这些课程吗?

Nik*_*sov 5

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

compile ('com.ironsource.adapters:facebookadapter:4.0.3@jar') {
  exclude group: 'com.facebook.ads'
}
Run Code Online (Sandbox Code Playgroud)

更新

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

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

configurations {
    all*.exclude group: 'com.facebook.ads'
}
Run Code Online (Sandbox Code Playgroud)