我需要将来自第三方的两个SDK添加到我的应用中。我从maven存储库中获取这些内容。我在项目中创建了一个额外的模块。在这个模块的build.gradle文件中,我把它放在:
dependencies {
compile('com.abc:abcFirstSdk:0.0.1@aar') {
exclude module: 'support-v4'
exclude module: 'support-compat'
exclude module: "support-annotations"
transitive = true
}
compile('com.abc:abcSecondSdk:0.0.1@aar') {
exclude module: 'support-v4'
exclude module: 'support-compat'
exclude module: "support-annotations"
transitive = true
}
}
当我构建项目时,我收到此错误:
Error:Execution failed for task ':app:transformClassesWithJarMergingForLocalDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/abc/model/DataModel.class
因此,这两个DataModel.class文件都在SDK中。如何从第二个中排除它?
答案 0 :(得分:0)
由于您将@aar
指定为qualifier
,因此会引入AAR文件目录。
Gradle依赖项只是maven依赖项,例如:(GAV @ Q - Group Artifact Id / Name - Version @ Qualifier)。
使用exclude module
您尝试删除单个module
,但是您在单个AAR文件上使用它而不是实际的maven依赖项本身。
你能发布实际的依赖吗?如果没有,您可以尝试删除@aar
。
来源: