如果你用Android Studio开发,并且要用其他项目作为library,这个问题是很容易出现的。出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。
那如何解决呢,我所知道的是有两种方法:
方法1:按照惯例,直接上图吧,从下图可以看到我在library中有加了一个v4的包,同时我将它作为dependencies,而在samples中也是一样有一个v4的包,同样的也需要将它作为dependencies,这个时候你去编译就会出现重复引用的问题:
那如何解决呢?
你可以直接修改gradle文件,也可以在上图中改,如下图所示:
在gradle文件中改,只需要将compile改成provided就行。
如果直接配置的话,也是一样的,在下拉框中选择provided。这里说明下,你只要改其中一个项目就可以了。
方法2:
使用这个方法有一个前提,就是你所引用的包在Library dependency中有,还是拿v4的包举例。
首先将v4的包从你的libs文件中删除,两个项目中都删除,然后再重新添加引用,这个添加方式如下,直接上图吧,按圈起来的红色框操作:
在弹出的对话框中选择v4包:
点击OK即可。注意这边两个项目都需要改成这种方式来引入v4包。
这个时候你两个引入的v4包的Scope就都可以使用compile了。而不需要将其中一个改成provided才可以编译过。当然你也可以不用上面的图形化操作方式,直接在gradle文件里面写也是一样的。