Android集成过程中常见问题
1.Program type already present
意味着在不同的依赖包中,出现了两个包名路径完全相同的类。具体看一个例子:
首先我们可以通过全局搜索找到这两个类的具体位置,双击shift,搜索:
然后找到哪两个依赖出现了冲突:
然后在Terminal中输入指令:
gradlew -q app:dependencies
获取依赖的树状图,找到哪两个依赖引入了这两个依赖,再找开发者修改。
一般情况下,引入了同一个依赖不会造成冲突,会自动启用更高的版本。但是如果依赖的Group和module不同,不会合并,进而同时会添加两个依赖。
如上面这种情况,都是同一个作者但作者修改了路径(如下图),一个组件引入老版本,一个引入新版本,导致了冲突。
这种情况只能要求开发者都使用新的版本依赖
另外一种情况是,开发者改造了第三方库,加入了自己的修改,上传到自己的maven中,但如其他开发者引用了原库也会导致冲突,解决方法是让改造了第三方库的开发者,修改包名,解决冲突。
主要冲突原因为上述两种情况(都使用maven方式依赖的前提下),暂未出现其他情况。