[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制

过年闲着想把以前在AS2.3.3做过的旧的练手的Android项目重新迁移到AS3.5.2,果不其然出现一系列错误,养成记录下踩坑日记的习惯,不要重蹈覆辙浪费时间。

1.com.android.support版本冲突
v7:28.0.0与第三方依赖的support库版本不同经过摸索,找到一些分析,记录一下。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第1张图片
详解https://blog.csdn.net/yuzhiqiang_1993/article/details/78214812
采用通过Grovvy脚本修改版本号解决冲突是比较适宜的方案,其他附带链接可以学习。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第2张图片
2.gank.io美女图片接口用RxVolley访问出现Unexpected response code 404错误
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第3张图片
原因:url字段含有中文字段,浏览器能够正常访问是因为将中文按utf-8转为一系列代码串
原url为http://gank.io/api/data/福利/10/1
但是RxVolley并不支持,需要指定编码。跟这位csdn老兄情况很相似。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第4张图片
将中文字段通过URLEncoder工具类如上转为utf-8字符串即可。

3.Android9用RxVolley网络请求失败
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第5张图片
分析原因,Android9.0新特性,对http开头的访问url都直接拒绝在系统发出网络请求。

查阅资料:
Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第6张图片
对于一二方法较为消极妥协,果断采用三方法解决。
—————————————————————————
4.glide加载库提示使用最新版本4.11.0后报错
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第7张图片
原因,新版本的glide使用了androidx库,不兼容support库导致。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第8张图片
5.旧项目gradle3.5.2版本构建工具出现mutidex库错误,百般查询无果,记录一下。
[Android] 旧版AS项目迁移到新版:support库版本冲突+RxVolley不支持中文url+Android9.0网络请求新限制_第9张图片
6.gank.io接口返回图片url大部分已无法解析。考虑弃用。
至此,应用功能成功恢复一部分。

你可能感兴趣的:(Android)