一次同事为项目中添加优酷sdk,添加时发生了错误,报错为:
image.png
大概的意思是项目中有相同的类文件,检查后发现与阿里推送sdk中的jar文件产生了冲突,两个三方sdk引用了相同jar,如图:
查找的解决方案是 exclude对应的冲突jar包,但是发现冲突在classes.jar中,当冲突的文件处于classes.jar中exclude是不能解决的。只能手动删除冲突的文件。
一番搜索后找到了一个过滤冲突文件的脚本https://github.com/Siy-Wu/ExcludeAar。
为了节省部署时间我直接使用脚本的DEMO,首先将需要过滤的aar包导入脚本libs中,如图: image.png
然后配置dependencyConfig.gradle中过滤规则,如图:
注意:为了防止误删包下其他类文件尽量过滤对应的类文件不要过滤包名
配置完成后,使用Android Studio中的右侧的Gradle面板,双击
image.png
控制台显示执行成功后,在build文件夹下生成相应的aar文件,如图:
image.png
解压查看生成文件中class.jar,成功过滤掉冲突的UTPageStatus.class类文件,完美解决冲突问题。 image.png
网友评论