使用android studio开发常见问题就是Multiple dex files define XXXXX。
之前eclipse使用ant编译,ant使用的是包含的方式进行编译,不同的模块有相同的资源也可以编译通过。而Gradle则要更加严格,采用合并的方式进行编译,所有的文件、代码都会被Merge到一起,相同的资源名就会发生冲突。
常见解决方法:
1、使用@aar关键字关闭依赖传递
compile 'com.xxx.xxxxx:xxxxxx:1.0.0-SNAPSHOT@aar'
这种方式libs目录下的jar文件是不受影响的
2、使用exclude module排除一个库中引用的其他库
compile ('com.xxx.yyy:aaa:1.1.1'){
exclude module:'com.xxx.yyy.bbb:1.1.2'
exclude module:'com.xxx.yyy.ccc:1.1.2'
}