我先交代一下背景,我编写的两个sdk,在进行混淆打包后,发现两个sdk混淆后的文件命名冲突了,导致编译无法通过。通过log可知是由于a.a.a.a.a文件同名冲突所致。
方案1
在混淆时,通过使用keeppackagenames字段,来保留包名,来确保每个混淆文件的唯一性。两个sdk的处理逻辑是一样的,其中一个proguard-rules.pro 配置如下:
// com.ls.support是我的包名
-keeppackagenames com.ls.support.**
更新于20/04/07
今天又遇到了混淆后同名文件冲突问题,原因是两个sdk内部同时引用了一个开源基础库,但是sdk内没有进行防混淆,导致两个sdk内同时存在a.a.a.a包,导致冲突。所以解决方案,就是在sdk内进行防混淆,避免混淆别的依赖。