解决Program type already present okhttp3 OkUrlFactory错误

2018-02-27 11:17:30来源:https://www.jianshu.com/p/e4530299cb6c作者:Mr云台人点击

分享



今天合并React Native分支到主分支的时候遇到Android Studio报错 Error:Program type already present: okhttp3.OkUrlFactory$1,记录一下解决的过程。



一、错误原因

从报错的英文来说,猜测是gradle 依赖出问题了,OkUrlFactory被两次加载。


在项目中搜索 OkUrlFactory 类,果然发现了两份:


(1)com.squareup.okhttp3:urlconnection:3.6.0@jar 里面有一份
(2)com.squareup.okhttp3:urlconnection:3.8.1@jar 里面有一份

那为什么会产生两份呢?


3.6.0版本是我的React Native 0.49 引用使用的。
3.8.1版本来源于手动引用的一个jar包。

一般来说,如果传递依赖都通过compile引入,那么Gradle会自动使用较高的那个版本。


而像上面这个,一个通过jar一个是React Native的传递依赖,所以造成了冲突。


二、解决办法
因为已经有React Native的 com.squareup.okhttp3:urlconnection
将手动引用的jar包去掉。







最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台