「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包的方式引入,是否也是下载一个对应的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包就行了?
当然不是!!!
这也侧面反应了第三方框架的繁重。
以上是这次的分享,如果你有问题,欢迎留言告诉我,我会尽力回答。
我是毛毛,感恩遇见你❤️
(2019-01-29 00:29)
- HDU 2084 数塔(简单DP入门)
- Python-解决Cx_Oracle查询时UnicodeDecodeError的问题
- “玲珑杯”ACM比赛 Round #12题解&源码
- NYOJ 题目77 开灯问题(简单模拟)
- python笔记2-冒泡排序
- Lucas定理学习(进阶中)
- Java8时间类使用方法
- Selenium2+python自动化46-js解决click失效问题
- PCA实现一个简单的酒店推荐系统(附Python源码)
- 【干货】动手实践:理解和优化GAN(附代码)
- Selenium2+python自动化44-元素定位参数化(find_element)
- Selenium2+python自动化45-18种定位方法(find_elements)
- Python做文本挖掘的情感极性分析(基于情感词典的方法)
- Selenium2+python自动化42-判断元素(expected_conditions)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法