Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
2017-05-18 17:18
597 查看
如果你用Android Studio开发,并且要用其他项目作为library,这个问题是很容易出现的。出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。
那如何解决呢,我所知道的是有两种方法:
方法1:按照惯例,直接上图吧,从下图可以看到我在library中有加了一个v4的包,同时我将它作为dependencies,而在samples中也是一样有一个v4的包,同样的也需要将它作为dependencies,这个时候你去编译就会出现重复引用的问题:
![](http://img.blog.csdn.net/20141209160610187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlyODM5NjA5NDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
那如何解决呢?
你可以直接修改gradle文件,也可以在上图中改,如下图所示:
在gradle文件中改,只需要将compile改成provided就行。
如果直接配置的话,也是一样的,在下拉框中选择provided。这里说明下,你只要改其中一个项目就可以了。
![](http://img.blog.csdn.net/20141209161026978?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlyODM5NjA5NDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20141209161033031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlyODM5NjA5NDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
方法2:
使用这个方法有一个前提,就是你所引用的包在Library dependency中有,还是拿v4的包举例。
首先将v4的包从你的libs文件中删除,两个项目中都删除,然后再重新添加引用,这个添加方式如下,直接上图吧,按圈起来的红色框操作:
![](http://img.blog.csdn.net/20141209161704296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlyODM5NjA5NDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在弹出的对话框中选择v4包:
![](http://img.blog.csdn.net/20141209161750828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHlyODM5NjA5NDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
点击OK即可。注意这边两个项目都需要改成这种方式来引入v4包。
这个时候你两个引入的v4包的Scope就都可以使用compile了。而不需要将其中一个改成provided才可以编译过。当然你也可以不用上面的图形化操作方式,直接在gradle文件里面写也是一样的。
那如何解决呢,我所知道的是有两种方法:
方法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文件里面写也是一样的。
相关文章推荐
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包),androiddefine
- 安卓包重复引用解决方案Android Studio com.android.dex.DexException: Multiple dex files define
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包)
- Android Eclipse项目迁移到Studio时报错: com.android.dex.DexException: Multiple dex files define(重复引用包)