Android Duplicate class 修改aar后重新打包

如图 引入喜马拉雅sdk后出现了Duplicate class,原因是它的SDK引入了 Lottie和广点通的包,为了保证兼容性,我想用我本地的 Lottie和广点通 版本,去除喜马拉雅aar里的 Lottie和广点通。


1.jpeg

1.把MiyataOpenUISdk-1.0.2.aar改后缀成zip,得到解压后的MiyataOpenUISdk-1.0.2文件夹,里面包含classes.jar和res等。


2.jpeg

2.同理把classes.jar改后缀成zip,解压后得到classes文件夹,找到冲突的包,直接删除整个文件夹,如图。


3.jpeg

3.使用jar命令重新对classes文件夹打包成jar ,并替换掉之前的classes.jar。

jar cvf classes.jar -C classes/ .

3.同理,使用jar命令重新对MiyataOpenUISdk-1.0.2文件夹打包成aar ,得到的newAAR.aar即可使用。

jar cvf newAAR.aar -C MiyataOpenUISdk-1.0.2/ .

另外,cue一下喜马拉雅的SDK开发人员,是否考虑把Lottie、广告sdk、oaid等第三方SDK让接入者自己接入,而不是一股脑的全部打包进aar,导致接入时可能遇到很多冲突。或者使用 Provided(只参与编译,不打包到最终apk)。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容