#问题
项目中经常会出现集成多个三方的libs,经常出现集成的某A.jar 和 B.jar 而 B.jar 却已经包含了A中的(部分,强调一下)方法
出现这种情况的因素有很多种,博主自己遇到的就是各个sdk升级不可能那么及时。这次遇到的问题就是华为推送中包含了百度地图相关类,而我新下载的百度地图sdk存在了相同的类导致 无法编译通过。
#尝试
尝试在用
provided files('libs/BaiduLBS_Android.jar') 虽然能够正常编译,但是真正运行百度的方法时会崩溃,原因是找不到相关的类。(gradle 3.0.1 可以使用compileOnly)
#查找资料
比较幸运在花粉俱乐部找到了
Push
SDK-客户端常见问题,第五条
5.应用中的百度地图jar包和Push SDK中的百度地图相冲突了,Push中的百度地图包能删掉么?
答:在不使用地理信息上报功能时,可以删除Push中的百度地图包,具体如下:
(1)删除和百度地图相关的jar包。
(2)可以把assert目录下pushresources文件夹以外的图片都删掉。
(3)rootca_0727.bks是华为Push的不要删除。
用好压打开(不要解压),直接删掉上述文件就可以了。
#解决问题
根据资料的提示和业务需要,将华为推送中无关的百度内容删除掉,再进行编译,就能正常运行了。
(使用compile 或者 gradle 3.0及以上implementation)
#其他
关键词:
exclude
group