Android Studio中app与library包冲突问题

开发中,遇到在app中与引用的library中引用相同名称的jar包,编译时报包名冲突,网上找了很多办法,都没有解决,最后通过各种试,终于解决了。
主要从以下几个方面入手:
1、app与library中的build.gradle中,compileSdkVersion、minSdkVersion、targetSdkVersion的版本要一致;
app的build.gradle

1.jpg

library的build.gradle
image.png

2、app的build.gradle中在defaultConfig中添加multiDexEnabled true
3、依赖中添加implementation 'com.android.support:multidex:1.0.0'
4、在依赖中,把library中与app相同的jar,在library使用compileOnly的方式引用,表示此jar包在library中仅编译使用,而app依然使用implementation的方式引用依赖
如app的某个jar包
image.png

library中与app相同的jar包
image.png

5、app与library中使用相同的jar包时,包名必须完全一致
6、不要使用implementation fileTree(include: ['.jar'], dir: 'libs')的方式引用所有的jar包,而使用implementation "xxx.jar"的方式
7、app与library中的implementation 'com.android.support:
**的版本号必须一致

你可能感兴趣的:(Android Studio中app与library包冲突问题)