Error :Program type already present:CoordinatorLayout$Behavior 异常处理

出现这个异常通常都是依赖冲突导致,需要查看下引入三方库之间的依赖关系,找出问题所在。

使用Gradle开发中,或多或少都会引入三方库,但是三方库又会有自己的子依赖,那么真正依赖到版本中的版本是多少呢?其实官方也有给出查看方法,官方说明点这里,采用以下方式可查看:

 查看依赖版本

在studio上右侧的task中adroid里点击运行androidDepencies

releaseCompileClasspath - Dependencies for compilation
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\flame.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\GetuiExt-2.0.3.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\GetuiSDK2.8.1.0.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\Msc.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\pgyer_sdk_2.4.2.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\Sunflower.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\tbs_sdk_thirdapp_v2.6.0.1045_36900_sharewithdownload_obfs_20161207_162008.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\universal-image-loader-1.9.4.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\wechat-sdk-android-with-mta-5.1.4.jar
+--- E:\Android\Android workSpace\feigePushDemo\ReadingTea\libs\xUtils-2.6.14.jar
+--- :WordPressEditor (variant: release)

还可以用命令查看,这里就不多说了,可以自己查看官网。

依赖说明如下:

  1. 版本:唯一的依赖。
  2. 版本(*):还存在该库其他版本的依赖或者间接依赖,并且默认选择()所标注的版本。
  3. 版本1->版本2(*):还存在该库其他版本的依赖或者间接依赖,并且选择 版本2。

 

Gradle冲突说明

gradle是比较智能的了,也能智能的处理相同包不同版本的冲突,会默认依赖较新的一个版本。但是如果是不同包之间的冲突,那么就会报错,得需要人为来解决了。报如下错误:

Program type already present: android.support.design.widget.CoordinatorLayout$Behavior
        Message{kind=ERROR, text=Program type already present: android.support.design.widget.CoordinatorLayout$Behavior, sources=[Unknown source file], tool name=Optional.of(D8)}

那么我们通过前面的命令可以查依赖树,但是解决这种冲突光看依赖树还不行,得结合报错,CoordinatorLayout$Behavior,我们在出问题的情况下全局搜索(双击shift,记得够上从选择框)一下CoordinatorLayout,就能看到是在哪两个库中存在了。

例如,处理下如下:

implementation 'com.android.support:design:26.1.0'
    //glide
    implementation('com.github.bumptech.glide:glide:4.7.1') {
        /*排除依赖,这下面的依赖会与design报错
        * 所以处理方式如下
        * */
        exclude group : "com.android.support"  , module: "support-fragment"
    }

其实 要是android.support.design.widget.CoordinatorLayout$这里报错的话,还可以引入个新版的。

implementation 'com.android.support:design:27.1.0'

这只是冲突的一种解决方法,和思路,遇到其他的冲突问题,要看具体的冲突包,然后用相应的办法处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值