Unable to merge dex
原因: 1、包引用重复
2、方法数超限
1、打开控制面板的 gradle control
,运行 Run with --stacktrace
![](https://i-blog.csdnimg.cn/blog_migrate/be7e00da9467c8df0d48090fc4243781.png)
2、run完之后,可以找到出现的原因,
- 2.1 出现重复的包,解决方法看3、4、5
- 2.2 包的数量超过范围
在build。gradle加如下代码
android {
defaultConfig {
multiDexEnabled true
}
}
3、在 android studio 中进行全局搜索JsonReader
,可以看出com.google.gson.stream
对应两个不同的引用包
![](https://i-blog.csdnimg.cn/blog_migrate/4d106c39e10fbf15f9ebb7eab9cb5da9.png)
4、打开终端,然后输入 gradle app:dependencies
,可以看到 gradle 的依赖树,然后搜索gson
,可以看出一个包的引用在HttpCall的build.gradle中,另一个在项目的build.gradle中
![](https://i-blog.csdnimg.cn/blog_migrate/745ae1c7d780b5db9a52c21ddc7b72ec.png)
5、解决方法
解决方式1
- 步骤1:将当前项目build.gradle的gson删除
- 步骤2:如果步骤1不行,将当前项目build.gradle的gson引用方式改成和HttpCall中的json引用方式相同
解决方法2
- 去除HttpCall的gson引用
implementation ('com.github.jhj24:HttpCall:v0.8.3'){
exclude group: 'com.google.code.gson'
}