今天开发中运到bmob和OKhttp依赖包冲突的问题,随手记录一下解决过程:
两个依赖都添加成功后,不管怎么同步都不会报错,但 Run'app' 时就报错:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
>com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lokio/Sink;
截图:
立即双击shift,搜索Sink
可以看到okio重复了(Bmob为了节约开发者的开发成本,在添加他的依赖包时,其实已经是有其他包含了okhttp、okio、rxjava、rxandroid、gson的库)如需去除可以exclude掉这些已包含在bmobsdk中的包;
不信我们切换到project打开项目工程:
那是不是可以直接删掉这okio的jar包就可以了?
远程的添加依赖方式不行(删了也没用),本地jar包就可以。
刚好,我项目OKhttp用的是添加jar包的形式,只需把重复的okio-1.13.0.jar删除即可解决。
-----end-----