android 解决混淆导致AGPBI: {“kind“:“error“,“text“:“Type a.a is defined multiple times

当我们代码将minifyEnabled true后开启混淆,最终打包可能会出现AGPBI: {"kind":"error","text":"Type a.a is defined multiple times: F:\classes.jar:a/a.class,出现原因是是因为 R8/Projguard 混淆器 介入后,将原本不同的类都重命名为了最简短的 a.a

在 Android 组件化架构中,如果你在 alibraryblibrary 两个库模块中都开启了 minifyEnabled true

  • 隔离编译 :Gradle 在编译 Library 时是相互隔离的。R8 在处理 alibrary时,并不知道 blibrary 的存在。

  • 重名碰撞 :R8 的混淆算法通常从 a, b, c 开始。alibrary里的某个核心类(比如 DataBinderMapperImpl)被混淆成了 a.a;凑巧 blibrary 里的某个类也被混淆成了 a.a

  • 合并冲突 :当 App 模块尝试将这两个已经混淆好的 .jar 文件合并到一个 DEX 文件时,由于它们都叫 a.a,编译器无法分辨该保留哪一个,为了程序安全只能报错

知道原因后我们只需要aliberary跟blibrary 的android{resourcePrefix "a_"}跟android{resourcePrefix "b_"}即可

相关推荐
南知意-3 分钟前
IDEA 2026.1最新版安装教程
java·ide·intellij-idea·idea安装·idea激活
njsgcs9 分钟前
c# solidworks 工程图获得展开视图不在固定面螺纹特征的位置
开发语言·c#·solidworks
星子落怀aa19 分钟前
Java 反复报错?Gemini助力修复
java
半夜修仙23 分钟前
RabbitMQ中如何保证消息的可靠性传输
java·分布式·中间件·rabbitmq·github·java-rabbitmq
踏雪羽翼23 分钟前
Android OpenGL实现十几种美颜功能
android
Flittly24 分钟前
【AgentScope Java新手村系列】(3)工具系统
java·spring boot·spring
qq_85730581927 分钟前
python语法
开发语言·python·算法
吴声子夜歌27 分钟前
Java——多线程编程技巧
java·多线程
AI行业学习40 分钟前
CC-Switch v3.16.1 官方下载 | 安装配置详细教程【2026.6.10】
java·开发语言·vue.js·python·mysql·eclipse·html
周杰伦的稻香1 小时前
Go + Redis:本地部署高性能图片主色调提取服务
开发语言·redis·golang