android:Multiple dex files define Landroid/support/v4/app/FragmentState异常解决

Multiple dex files define Landroid/support/v4/app/FragmentState

编译的时候,经常会遇到这个问题。该问题的主要原因是:项目中依赖的资源包中存在重复依赖,从而出现了这个问题。基于问题的主要原因出发,可以想到解决方案:把重复依赖的资源包删除或者排除在外。
而根据解决思路,由于实际情况的不同,可以有两种主要的解决思路:
1)若重复依赖的资源包被另一个资源包包含,则使用排除在外的方法;
2)若重复依赖的资源包为单独的一个资源包,则找到对应的重复资源包,直接删除即可
解决方案:
参考网上的解决方案,同时结合自身情况,提供一下三种主要的解决思路:
1.用gradle view看:
1)从 “file–setting–plugin”,安装具体见图
在这里插入图片描述
2)安装完成之后,可以通过 view–window tool—gradle view查看项目资源包的依赖关系
在这里插入图片描述
3)根据依赖关系,删除或者排除重复依赖的包
排除重复依赖包方法,如:
项目的build.gradle文件中,排除重复依赖的support-v4

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    |    \--- com.google.android:support-v4:r7
|    +--- com.commonsware.cwac:camera:0.5.4
|    \--- com.android.support:support-v4:18.0.+ -> 18.0.0
\--- com.android.support:support-v4:18.0.+ -> 18.0.0
exclude 
“` 
dependencies { 
compile(‘com.commonsware.cwac:camera-v9:0.5.4’) { 
exclude module: ‘support-v4-23.4.0’ 
}

2.gradle命令看依赖
1)

在android studio的terminal中输入:(window环境) 
gradlew :app:dependencies –configuration compile 

其中,“app”为项目名称

在这里插入图片描述
2)同样的,知道资源包依赖关系之后,排除或者直接删除重复依赖的资源包即可

3.如果项目中同时使用了AndroidX的资源包,建议直接删除AndroidX的资源包
(我的项目情况是:主工程项目依赖了一个module,而依赖的module中使用了AndroidX的资源包,直接删除,使用Android基础库包的资源即解决了问题)
在这里插入图片描述
不足之处,敬请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易小四

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值