Android开发:引入重复包报错':app:transformDexArchiveWithExternal...’解决方法

Android开发过程中,有时候会遇到往项目中导入重复包引起的错误,尤其是接手别人的项目,或者是合作开发的时候,会遇到这种情况,导入重复包的问题一般会报Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug’.的错误提示。错误提示图示如下:

方法一:遇到这种情况一般就是开发者在不知情的情况下往项目中引入一个新的工具包,然后立马就会报这个错误。解决这种情况的方法很简单,要么直接通过查看build.gradle文件里面引入的工具包,对比查找重复的工具包,直接删除相同的工具包的其中一个,然后重新编译一下项目即可,这种是最基本的方法。

方法二:但是如果项目中引用的工具包过多,不容易排查查找重复工具包的话,就需要使用杀手锏了,这个方法可以一次设置终身受益,具体步骤如下所示。

1、找到Android Studio的顶部菜单栏里面,然后点击File—>Other Settings—>Default Settings;

2、然后进入Default Preferences管理界面, 然后在左侧菜单栏选择”Build,Execution,Deployment“中对应目录下的”Compiler“选项;

3、在Compiler模块对应的选择中,找到”Command-line Options:“选项,然后在该选项对应的输入框里面输入:--stacktrace 命令行,然后点击底部的”Apply“按钮;

4、点击”Apply“按钮之后,最后点击”OK“按钮即可;

5、然后点击项目编译一下工程,然后就可以看到提示重复使用工具包的包名,然后删除重复的引用包即可。

注意:如果删除重复包之后,项目还是一直报错,那就要多编译清理几次项目缓存,就解决报错了。

如果根据方法2,删除所有错误提示的工具包之后才没有提示该错误,但是项目中所依赖该包的方法报”undefined“的错误,那么很有可能是引用的工具包自身有问题,解决方法:可以通过尝试降低版本或升高版本来解决该问题,eg:compile 'com.github.bumptech.glide:glide:3.7.1’

替换改成compile 'com.github.bumptech.glide:glide:3.7' 或者是compile 'com.github.bumptech.glide:glide:3.7.1’替换改成compile 'com.github.bumptech.glide:glide:3.7.2’ 这样问题应该就解决了。

以上就是本章全部内容,欢迎关注三掌柜的微信公众号“iOS开发by三掌柜”,三掌柜的新浪微博“三掌柜666”,欢迎关注!

原文发布于微信公众号 - iOS开发by三掌柜(sanzhanggui777)

原文发表时间:2019-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券