资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

AndroidStudio中Gradle依赖冲突如何解决

本篇文章给大家分享的是有关Android Studio中Gradle依赖冲突如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

目前成都创新互联公司已为上1000家的企业提供了网站建设、域名、虚拟主机网站托管、企业网站设计、蒙阴网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

1. 查看依赖树

./gradlew dependencies

Android Studio中Gradle依赖冲突如何解决

2. 解决依赖冲突

一旦在构建中存在依赖冲突,开发人员需要决定哪个版本的库最终包含在构建中,有许多解决冲突的方法。

1. 逐个排除

compile('junit:junit:4.12'){
 exclude group : 'org.hamcrest',module:'hamcrest-core'
}
//最终,如果我们向包含1.3版本到构建中,我们可以从“mockito"中排除他
androidTestCompile('org.mockito:mockito-core:1.10.19'){
 exclude group : 'org.hamcrest',module:'hamcrest-core'
}

2. 显式依赖

在build.gradle中显示定义冲突的库,这是解决冲突的一种方式,在这种情况下,我们需要明确提出我们想要包含在任何一个配置的最终构建中的库的版本。

compile 'junit:junit:4.12'
androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'org.hamcrest:hamcrest-core:1.3'

如果多个依赖具有冲突版本的依赖或传递依赖的话,则不是从每个依赖性中排除模块,而是可以简单的使用期望的版本号来定义冲突依赖。

这种是一种更清洁的解决冲突的方法,但缺点是,当更新实际的依赖关系的时候,开发人员需要更新冲突的库。

3. 强制依赖

//在app.gradle 中的Android闭包中使用
android{
   configurations.all {
      resolutionStrategy.force 'com.android.support:appcompat-v7:28.0.0'
      resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
      resolutionStrategy.force 'com.android.support:animated-vector-drawable:28.0.0'
      resolutionStrategy.force 'com.android.support:support-media-compat:28.0.0'
   }
}

//在build.gradle 中设置工程全局强制依赖
allprojects{
   configurations.all {
      resolutionStrategy.force 'com.android.support:appcompat-v7:28.0.0'
      resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
      resolutionStrategy.force 'com.android.support:animated-vector-drawable:28.0.0'
      resolutionStrategy.force 'com.android.support:support-media-compat:28.0.0'
   }
}

以上就是Android Studio中Gradle依赖冲突如何解决,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


网站题目:AndroidStudio中Gradle依赖冲突如何解决
浏览地址:http://cdkjz.cn/article/pdeeis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220