两个外部第三方混淆库中的类名重复

时间:2020-01-30 17:13:36

标签: android gradle

我有一个包含两个外部第三方库的项目。在尝试构建项目时,这两个库都具有混淆的类文件名和gradle barfs。

Duplicate class a.a.a.a.a.b found in modules...

我不能排除任何类,因为它们不是重复的,也看不到gradle为名称加上前缀的方法。

对此有任何简单的解决方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用shadow pluginrelocate the offending packages。然后,您将依靠阴影罐子而不是原始的

plugins {
   id "com.github.johnrengelman.shadow" version "5.2.0"
}
configurations {
   shadowMe { transitive = false } 
} 
dependencies {
   shadowMe 'foo:jar-to-shadow:1.0'
   compile files({tasks.shadowJar})
}
task shadowJar(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
   archiveBaseName = 'shadowed-foo' 
   relocate 'a.a.a.a.a', 'shadow.a.a.a.a'
   from zipTree(configurations.shadowMe.singleFile)
}

没有经过测试,可能需要进行一些调整,但希望您能理解

相关问题