「okhttp」Gradle引用改jar包引用(一波三折)

Gradle引用

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    api 'com.squareup.okhttp3:okhttp:3.10.0'
}

正常引用okhttp在build.gradle里面添加一行api 'com.squareup.okhttp3:okhttp:3.10.0'就可以了。

如果改成以jar包的方式引入,是否也是下載一個對應(yīng)的jar包就可以了呢?

首先我們來到okhttp官網(wǎng)下載一個jar包,將它放入libs文件夾,同步(Sync)一下。

然后你用okhttp去寫網(wǎng)絡(luò)請求相關(guān)代碼,最后跑起你的項目代碼。
你會發(fā)現(xiàn)報如下錯誤:
錯誤: 無法訪問ByteString找不到okio.ByteString的類文件

okio是什么鬼?我代碼里也沒用到它呀?

不管了,先解決問題再說。(大概是okhttp框架里用到的)

其中一個可靠的答案給了我線索: 《OkHTTP error cannot access ByteString》

它提供了okio的官方GitHub地址:https://github.com/square/okio

在GitHub的項目說明里拖到最下方有個“Download”,這就是最新的okio下載途徑。

下載完okio,將其放入libs文件夾下,同步代碼,運行程序。

接著又報錯了:


此刻的我是崩潰的,內(nèi)心都涼了。

沒辦法,繼續(xù)找答案……

又找到一個可靠的回答:《kotlin/TypeCastException when trying to create OkHttpClient object》

里面有個回答者給出需要下載的kotlin-stdlibjar包地址:

I had the same problem. Add kotlin-stdlib JAR to the build Path

這個回答解了我的燃眉之急,“我可以叫你雷鋒嗎(可愛)”。

下載下來以后,同樣放到libs里面,再次同步,運行項目。

這次終于正常運行了!

附上最后libs里面擁有的jar包們:


所以說……

你以為下載一個對應(yīng)okhttp的jar包就行了?

當(dāng)然不是!!!

這也側(cè)面反應(yīng)了第三方框架的繁重。

以上是這次的分享,如果你有問題,歡迎留言告訴我,我會盡力回答。

我是毛毛,感恩遇見你??

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容