Android Studio 3.0.1升级后Multidex合并错误求助
从你给出的报错信息和配置来看,核心问题是项目中重复引入了zbar相关的库,这才导致升级Android Studio后出现dex合并失败,之前尝试的multiDex开启、清理缓存等操作没触及根本原因。下面是针对性的解决步骤:
检查libs目录的重复jar包
你在模块build.gradle里重复配置了两次compile fileTree(dir: 'libs', include: ['*.jar']),先删掉其中一行避免冗余扫描。然后去项目的libs目录下看看,是否存在zbar相关的.jar文件(比如zbar.jar)——因为你已经通过maven引入了cn.bingoogolapple:bga-zbar:1.1.9@aar,这个库本身已经包含了zbar的核心代码,如果libs里还有同名jar,就会造成重复定义。如果有,直接删除该jar。排查依赖树找到隐藏的重复依赖
执行Gradle命令查看完整的依赖树,找出偷偷引入zbar的依赖:# Mac/Linux环境 ./gradlew app:dependencies # Windows环境 gradlew app:dependencies在输出结果里搜索
net.sourceforge.zbar,看看除了bga-zbar之外,还有没有其他依赖也引入了这个库。如果有,就在对应的依赖中排除zbar模块,示例如下:compile '存在重复的依赖名:版本号' { exclude group: 'net.sourceforge.zbar' }清理并重建项目
完成上面的操作后,先执行Build -> Clean Project,再执行Build -> Rebuild Project,或者用命令:./gradlew clean assembleDebug
另外提个小建议:Android Studio 3.0+官方推荐使用implementation代替compile来配置依赖,这样可以减少不必要的依赖传递,降低这类重复依赖问题的概率,你可以逐步替换现有依赖中的compile为implementation。
内容的提问来源于stack exchange,提问作者PoojaJangid

