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

2020-09-10 15:22:09 浏览数 (1)

Gradle引用

代码语言:javascript复制
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-stdlibjar包地址:

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

这个回答解了我的燃眉之急,“我可以叫你雷锋吗(可爱)”。

下载下来以后,同样放到libs里面,再次同步,运行项目。

这次终于正常运行了!

附上最后libs里面拥有的jar包们:

所以说……

你以为下载一个对应okhttp的jar包就行了?

当然不是!!!

这也侧面反应了第三方框架的繁重。

以上是这次的分享,如果你有问题,欢迎留言告诉我,我会尽力回答。

我是毛毛,感恩遇见你❤️

(2019-01-29 00:29)

0 人点赞