Android Duplicate class 修改aar后重新打包

1,034 阅读1分钟

如图 引入喜马拉雅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 ,得到的newMiyataOpenUISdk.aar即可使用。

jar cvf newMiyataOpenUISdk.aar -c MiyataOpenUISdk-1.0.2/ .

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

参考