Android Studio导入第三方源码报错情况——1

报错如下:

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
E:\android-sdk\build-tools\21.1.2\dx.bat --dex --no-optimize --output D:\Project\Android_Studio\项目名称\app\build\intermediates\dex\debug --input-list=D:\Project\Android_Studio\项目名称\app\build\intermediates\tmp\dex\debug\inputList.txt
Error Code:
2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/zxing/encoding/EncodingHandler;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)



出错原因分析:

       我在网上下载了一份关于二维码处理的源码,然后导入我的工程,开始的时候我忘记要gradle一下了,所以在编译运行的时候报错,我就很自然的点了Alt+Enter(我用的是Android Studio),然后将导入的源码中的一部分加入到了我的项目文件夹“APP”中,然后我就把这件事情给忘了。

       之后我通过Gradle,将下载的源码加到我的项目中,再编译运行的时候就出现了如上所示的错误信息。因为忘记了之前的”所作所为“,所以到网上查了一下,看到有人说是存在重复(源码和库),于是我看了一下代码,发现确实是我导入的源码gradle作为了库,而我之前又把一部分源码加入到了我自己写的项目源码中,这就重复了,我删掉我项目中后来加入的源码后,在编译运行就不会报错了。

       综上,其实就是相同的代码出现在了一个工程的不同位置,要删掉一份儿,当然删掉哪一份儿,当然是自己gradle之前误添的那一份儿。

我把上图中barCodeTest中的一部分代码加到了”app“文件夹下的”java“中,而这些代码在barCodeTest还是存在的,barCodeTest是作为库存在的,所以这两处的代码就产生矛盾了,删掉”app“中的多余代码就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值