美文网首页
解决Android Studio项目support包重复引入多个

解决Android Studio项目support包重复引入多个

作者: 涉川gw | 来源:发表于2018-04-24 14:46 被阅读0次

            “不重复造轮子”,这是可谓是写代码界的格言了,做Android开发也不例外,为了更快完成项目需求,我们在接到需求开始动手写代码前都会去GitHub或者码云等代码库搜索一下有没有大神已经实现好类似功能的“轮子”,有就可以轻轻松松compile进依赖包,拿来用了,随着使用的第三方包增加,加上个别造轮子的人没怎么注意包的引入问题,便会出现引入重复的包,这个问题轻则出现警告,重则无法运行App。本篇文章记录下我在开发过程遇到的一个警告型错误:

    从提示信息可以看出这个错误是因为引入了多个版本的support包,此时虽然能运行App,但是本着严谨的作风,有错误就一定要想办法解决掉,不然日后坑深了就爬不出来了。

    什么是support包

        首先介绍下什么是support包,我们都知道Android发展到现在已经发布了很多个版本了,而且每个版本都增加不少新的“功能”,这就导致了低版本系统使用高版本功能时会出错,为了解决这个问题,Google就做了这些个support包,即我们经常看到的support v4,v7,v13等等这些包。

    support-v4

        用在API lever 4(即Android 1.6)或者更高版本之上。它包含了相对更多的内容,而且用的更为广泛,例如:Fragment,NotificationCompat,LoadBroadcastManager,ViewPager,PageTabStrip,Loader,FileProvider 等

    * support-v7

       用在  API level 7(即Android 2.1)及以上版本而设计的,但是v7是要依赖v4这个包的,v7支持了Action Bar以及一些Theme的兼容。

    * support-v13

         用在API level 13(即Android 3.2)及更高版本的,一般我们都不常用,平板开发中能用到。

    我们常用的一般就v4和v7包。注意:gradle引用appcompat-v7包的时候就不需要引用v4了,因为v7里默认包含了v4包。

    重复引入解决方法

    1:在引入第三方依赖包的时候明确知道它会引入冲突包,可以在引入的时候去除引入其中的support包,这个方法在引入库较多的时候不实用,这里就不做介绍了。

    2:直接配置全局support包的版本,统一使用同一个版本的support包:

    在build.gradle 配置文件下android包下添加如下配置代码:

    ···

    configurations.all {

    resolutionStrategy.eachDependency { DependencyResolveDetails details ->

    def requested = details.requested

    if (requested.group =='com.android.support') {

    if (!requested.name.startsWith("multidex")) {

    details.useVersion'26.0.0' //这里改为你项目使用的版本即可

                }

            }

        }

    }

    ···

    相关文章

      网友评论

          本文标题:解决Android Studio项目support包重复引入多个

          本文链接:https://www.haomeiwen.com/subject/ikkjlftx.html