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包的方式引入,是否也是下载一个对应的jar包就可以了呢?
首先我们来到okhttp官网下载一个jar包,将它放入libs文件夹,同步(Sync)一下。
然后你用okhttp去写网络请求相关代码,最后跑起你的项目代码。
你会发现报如下错误:
错误: 无法访问ByteString找不到okio.ByteString的类文件
okio是什么鬼?我代码里也没用到它呀?
不管了,先解决问题再说。(大概是okhttp框架里用到的)
其中一个可靠的答案给了我线索: 《OkHTTP error cannot access ByteString》
它提供了okio的官方GitHub地址:https://github.com/square/okio
在GitHub的项目说明里拖到最下方有个“Download”,这就是最新的okio下载途径。
下载完okio,将其放入libs文件夹下,同步代码,运行程序。
接着又报错了:
此刻的我是崩溃的,内心都凉了。
没办法,继续找答案……
又找到一个可靠的回答:《kotlin/TypeCastException when trying to create OkHttpClient object》
里面有个回答者给出需要下载的kotlin-stdlib
jar包地址:
I had the same problem. Add kotlin-stdlib JAR to the build Path
这个回答解了我的燃眉之急,“我可以叫你雷锋吗(可爱)”。
下载下来以后,同样放到libs里面,再次同步,运行项目。
这次终于正常运行了!
附上最后libs里面拥有的jar包们:
所以说……
你以为下载一个对应okhttp的jar包就行了?
当然不是!!!
这也侧面反应了第三方框架的繁重。
以上是这次的分享,如果你有问题,欢迎留言告诉我,我会尽力回答。
我是毛毛,感恩遇见你❤️