解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

今天想把自己Demo的本地数据换成云端数据,进行网络数据拉取。选择了Bmob来做后端数据库,使用OkHttp进行网络拉取数据。
当使用Maven导入依赖后,编译程序正常,但是运行程序却报错。错误如下所示:
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

查看网上一些解决的方案是在引入依赖的时候把相同的jar去除掉。

那我应该去掉什么呢,所以查看了一下AS的库依赖,如下所示:
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

因为,我之前运行程序都OK,所以我直接把问题定位到了Bmob sdk和OkHttp的依赖上。

查看Bonb sdk库依赖。
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)
随后查看OkHttp库依赖
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)
看了这两个库依赖,我一下就明白了。同时有了两个okio的依赖。所以报错了。

好了,找到问题的根源了。那我们现在如何去除掉相同的类库呢,很简单:
在Android Studio(AS)中,选择以Project显示项目,找到最下面的External Libraries,然后点开OkHttp库依赖,找到pom.xml文件,这里面就是关于这个jar的一些配置文件,点开之后进行寻找okio(因为是okio有相同依赖)。
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

pom.xml文件的截图:
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)
寻找okio
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

找到okio的引用后,没错,这个就是导致咱们程序报错的原因,复制里面的groupId,到你的build.gradle里,找到OkHttp依赖,添加{exclude group: “com.squareup.okio”},把这个groupId的引用去除掉,如下图所示:
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

好了,重新编译,运行程序,正常启动。
最后在看一下。正常运行项目后,External Libraries的截图:
解决项目添加Bmob sdk出现的库依赖冲突问题(学会方式:通一百通)

到此,解决重复依赖的问题就解决了。
如果以后遇到了多个重复的依赖的话,就可以按照上述方法,进行一个一个的去重。【通一百通】