今天开发的时候,编译遇到这个问题。当前的情况是,我新建了一个dev分支,想在dev分支上直接编译一下,结果就报错了。后来折腾了一下,就想难道是分支的问题,然后就把分支合并了,因为也没改什么东西。结果合并后,编译还是不行。
后来,Google一翻,大致知道导致这个问题的原因,多半是你引入的第三方sdk冲突了,就是同一个资源,你可能本地导入了一次,然后gradle又导入了一次,所有AS不知道用哪个。网上给出的解决办法是,在app/builde.gradle 中,android{}闭包里面添加:
android { packagingOptions { exclude 'xxx' } }
其中,xxx就是你报错的资源路径。我试了一下,然后报错变了,资源变了。我查看我的报错内容,是map什么什么的 ,就估计应该是引入高德sdk的时候冲突了,当时看开发文档的时候就有点急,不求甚解。我用的是2d,但是我2d,3d地图都导入了,我查看工程引入的包资源,发现这个资源在2d,3d中都有,而且我还手动引入了so包,于是我把3d的,和so包都删了。问题解决。
鬼知道,当初是怎么编译通过。分支也是不熟练。一个人开发真难,连个问的人都没有。