gradle中的Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoC

最近在使用gradle的过程中遇到了这么一个报错:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)
其实我只是引用了一下recycleview,结果就死活编译不过去了。一番折腾加Google之后终于解决。
问题根本原因:
	库与库之间存在交叉编译,一个class被编译了两次,所以报错。
查看交叉依赖的方法:
	使用gralde命令:./gradlew.bat -q dependencies,然后就可以看到项目与项目之间的依赖关系,不过这招对我的问题完全没用。
问题解决:
	这个项目我是后来接手的,原来是基于eclipse编译,后面是我手动加入的gralde编译并加了一些新功能,结果没曾想,老项目的libs
目录下面居然有个support-v4的jar包!!上面的交叉命令是看不到本地libs下面的jar包依赖的(本地也没依赖。。。),删掉libs下面多余的
v4包,搞定。
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值