gradle包重名

gradle使用高版本出现包重复,具体原因合解决办法如下:

1原因:

   项目中依赖很多子模块,子模块是都是另一个团队,甚至是另个部门的团队来维护,他们会有自己的包依赖关系(因为子模块也会供给很多团队使用,所以不能随便删包),这样当主线中引用很多其他子模块的时候就出现了复杂的依赖(子模块之间也会有依赖),当gradle在1.3的时候,在编译的时候会merge重复的代码(类似去重),但是当使用高版本的时候会出现包重复的问题,编译不通过。

2:解决办法:

   一般dependencies 都会有这样一句代码:compile fileTree(dir: 'libs', include: '*.jar')——这句话是说我要仓库中所有的代码,这个时候需要去重子模块的重复的包    compile fileTree(dir: 'libs', include: '*.jar', exclude : '***.jar')———exclude的意思就是去除,如果有多个包则[.jar,.jar]类似数组,逗号分割,但是这样会导致子模块编译不通过,这个时候就要    provided files('libs/***.jar’)——参与编译,但是不打到最终的jar,这样就达到的去重(子模块可以编译,主线可以打包)

3:关于子模块之间的依赖去重
    compile fileTree(dir: 'libs', include: '*.jar', exclude : ['***.jar', 'android-support-v4.jar’])———去重包(会一直报错,跟着错误就知道哪个包是重复的了)
    compile project(':submodules:子模块名称)———这里括号中的为被依赖的子模块

    
包依赖关系的6中不同方式(简单了解): http://www.cnblogs.com/kangyi/p/4449857.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值