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

标签 android gradle

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

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

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

有什么简单的解决方法吗?

最佳答案

您可以使用 shadow pluginrelocate the offending packages .然后,您将依赖阴影 jar 而不是原来的

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)
}

这些都没有经过测试,可能需要一些调整,但希望你能明白

关于android - 两个外部第三方混淆库中的重复类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59991168/

相关文章:

android - 如何在 onNewIntent 执行之前拦截 NFC 标签

Android:提高服务中运行的音频性能

gradle - 如何在使用gradle的多模块系统中使用sonar + jacoco生成用于集成测试的代码覆盖率报告

java - Hello World Java教程deployNodes失败

android - 在 Android Gradle Build 3.1.2 中禁用 list 合并

java - 为什么 android studio 不跟随响应监听器?

java.lang.RuntimeException : Failure delivering result ResultInfo requires android. 权限。READ_EXTERNAL_STORAGE 或 grantUriPermissio

Android NFC 从标签类型 : IsoDep and NfcB 读取

gradle - 如何在 Gradle 中安装/运行监视任务

具有Gradle : Don't get the libraries while running javadoc task的Javadoc