Error : Program type already present: android.support.design.widget.CoordinatorLayout$

时间:2022-06-21 20:20:12

背景

因为公司一个app项目需要扩展,因为功能较多且较完整的流程与业务,而且和以前的业务关系不大,所以我整合到了

另外一个分包中(代号:newFunc,请注意是代号)进行依赖。

当我写完这部分业务开始进行debug的时候我发现了这个错误。

上述中我得出already这个关键字,在对分包的集成测试中没有出现问题,上述中我得出already这个关键字,说明已经存在,那么很有可能是冲突。

分析

材料:

  1. app 主包
  2. newFunc(代号) 分包

我搜集了两个包中的build.gradle,最有可能影响android.support.design的部分。

分别如下:

app:

implementation "com.android.support:support-v4:27.+"

newFunc(代号):

implementation "com.android.support:support-v4:26.+"
implementation 'com.android.support:design:26.1.0'

给我的第一印象就是去修改app的build.gradle把 27改成26

这样就不会加载26和27包冲突了。

最终解决方案

虽然我修改了27改成26是可以build成功的,但是对于这种基本上每个包都会用到的,所以我删除了分包中的

implementation "com.android.support:support-v4:26.+"

当然我们也可以将这个依赖放到android 项目的根目录下build.gradle中,但是似乎没人会这么做。

结语

希望对遇到相似问题的人有所帮助,最后希望能得到同行的指点与帮助,在此先感激为敬。