Android Multiple dex files define 解决包冲突

Android Multiple dex files define 解决包冲突,第1张

概述这段时间有一个新需求,安卓App通过URL在线预览PDF。选择使用并倒入PdfViewPager库时,报了如下异常: jdmerchants:transformDexArchiveWithExternalLibsDexMergerForTestServerDebugcom.android.builder.dexing.DexArchiveMergerException: Unable to

这段时间有一个新需求,安卓App通过URL在线预览pdf。选择使用并倒入PdfViewPager库时,报了如下异常:

jdmerchants:transformDexArchiveWithExternallibsDexMergerForTestServerDeBUGcom.androID.builder.dexing.DexArchiveMergerException: Unable to merge dexMultiple dex files define Luk/co/senab/photovIEw/log/Logger

出现Multiple,dex字样,直接想到的可能就是重复倒入依赖了,那么问题来了:

为什么我导入pdfVIEwPager类库的时候会产生重复依赖问题?
pdfVIEwPager类库里和我现有的依赖类库什么文件重复?
如何确定是哪某个类库里的文件和pdfVIEwPager类库产生重复的依赖了?

定位问题缘由

我用的是Mac下的AndroID Studio 3.1开发

首先需要找到一个工具或者方法,能了解到当前项目中所有类库内部的依赖情况。这里提供一种方法,输入下面命令

./gradlew -q 模块名:dependencIEs

在命令行窗口就能列出当前模块的所有依赖情况。我选取了和这次问题有关内容的,展示如下:

 

\--- es.voghdev.pdfvIEwpager:library:1.0.3 +--- com.androID.support:appcompat-v7:25.4.0 (*) \--- com.commit451:PhotoVIEw:1.2.4      \--- com.androID.support:support-v4:23.0.1 -> 25.4.0 (*)\--- com.github.chrisbanes.photovIEw:library:1.2.4 \--- com.androID.support:support-v4:22.0.0 -> 25.4.0 (*)

会发现,新引入的pdfvIEwpager类库用到了com.commit451:PhotoVIEw:1.2.4;这和com.github.chrisbanes.photovIEw:library:1.2.4类库重复了

 

解决问题

问题我们找到了:pdfvIEwpager类库依赖了chrisbanes.photovIEw类库,造成chrisbanes.photovIEw类库重复使用,因此只要在引入pdfvIEwpager的时候,排除掉com.commit451:PhotoVIEw:1.2.4就可以了

那么如何排除呢?Gradle构建项目肯定想到了这种情况下的处理--引入第三方类库时排除掉里面的某个依赖库:

          
compile (es.voghdev.pdfvIEwpager:library:1.0.3){    exclude group: com.commit451,module:PhotoVIEw}

 

小结

遇到了之前未曾遇到的问题,这个问题所需的知识点又是之前未曾储备的盲区,这时候Google搜索找到相似的问题的答案要能作类比和知识延伸,慢慢思考,有效思考,得出一点新的结论,然后继续思考,就能越来越接近解决问题的成功路径了

参考资料

Gradle依赖排除

有关 Android Studio 重复引入包的问题和解决方案

跟我学Gradle-5.3:依赖-管理依赖的版本

总结

以上是内存溢出为你收集整理的Android Multiple dex files define 解决包冲突全部内容,希望文章能够帮你解决Android Multiple dex files define 解决包冲突所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1121603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存