解決Program type already present okhttp3 OkUrlFactory錯誤

今天合并React Native分支到主分支的時候遇到Android Studio報錯 Error:Program type already present: okhttp3.OkUrlFactory$1,記錄一下解決的過程。

一、錯誤原因

從報錯的英文來說,猜測是gradle 依賴出問題了,OkUrlFactory被兩次加載。

在項目中搜索 OkUrlFactory 類,果然發(fā)現(xiàn)了兩份:

(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包去掉。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容