社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Demo地址:https://github.com/zhaopingfu/listener18
今天做项目引入了两个依赖
compile 'com.facebook.fresco:fresco:0.14.0'
compile 'com.android.support:appcompat-v7:23.0.0'
当在打包的时候发现打包失败
gradle :app:assembleDebug
这里显示我们项目里有重复的包
我们查看app下引入了哪些包
gradlew :app:dependencies
注意看图中箭头标注的两个依赖
sdkSDKextrasandroidm2repositorycomandroidsupportsupport-v423.0.0support-v4-23.0.0.pom
sdkSDKextrasandroidm2repositorycomandroidsupportsupport-v424.2.1support-v4-24.2.1.pom
通过查看这两个文件我们知道在24.2.1中com.android.support:support-core-utils这个包是单独的一个包,v4包进行依赖,而在23.0.0中他就是v4包的一部分,而不是一个单独的包,所以当我们引入了v4包和support-core-utils的时候,因为这两个包的名字不同,所以gradle不会帮我们排除掉一个,但是打包的时候出现了相同报名,相同类名的文件,所以打包失败
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.facebook.fresco:fresco:0.14.0', {
//TODO 第一种方式:禁止在内部依赖其他库,不推荐这种
//这种方式虽然可以,但是可能导致内部的一些代码用不了了,出现其他问题,不推荐
//transitive false
//TODO 第二种方式
//这种方式是在fresco中排除掉com.android.support:support-core-utils这个库的引用
exclude(group: 'com.android.support', module: 'support-core-utils')
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!