一、问题背景
前段时间新维护个AS开发的Android应用,拿到代码后,编译、安装及使用都是正常,于是将修复完BUG的应用提交到整机代码中,但是整机编译时报错,显示为dex解析失败。
咨询之前出现该问题的同事,他的解决方法是:将编译为debug版的应用改为release版。我这边尝试该方法后,发现没有用。
由于之前维护该代码的同事提交到整机是正常的,因此把她给我的代码和现在我导入到AS的代码进行了对比,发现一些配置不一样,由于当时我的AS刚更新到最新的版本,配置比之前同事的AS都高一些,当修改为和之前相同的配置后,整机编译通过。
二、解决方法
具体将AS中该项目的配置进行了修改,具体修改了如下两处:
(1)我AS中其他项目gradle配置为4.4,
修改为4.1,如下图所示:
(2)我AS中其他项目build.gradle配置为3.1.2
修改为3.0.1,如下图所示:
将以上两处修改完后,可编译通过,原因可能是整机编译解析优化的过程中和新版本的gradle的编译有冲突导致,具体原因还没有搞清楚,解决办法先记录下。