Android 9 网络请求失败

Stars-one 2020年08月02日 339次浏览 本篇字数为0字

本文为作者原创,转载请注明出处,谢谢配合
作者:Stars-one
链接:https://stars-one.site/2020/08/02/android9网络请求失败


问题

之前写的蓝奏云批量下载的Android版由于高版本出现问题,于是使用AndroidX的包进行重构了,然后有用户反馈说是无法登陆

由于我自己测试的设备是Android7.1的系统,没有问题,于是就觉得很奇怪,网上稍微搜索了一下,终于是找到了答案,是因为okhttp框架的问题

原因

从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。且Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。

解决方法

  1. 在res目录新建xml目录,并新建文件network_security_config.xml,文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
  1. 在AndroidManifest.xml文件中添加下面的属性
 android:networkSecurityConfig="@xml/network_security_config"

如下图所示:

参考:
Android 9.0/P okhttp网络请求出错 - 在云端i - 博客园