- 导致这个异常的原因是使用了http协议,http协议是明文传输协议。
- 为保证用户设备的数据安全,Android P要求默认使用加密连接,禁止 App 使用未加密的连接,因此运行 Android P 系统的安卓设备,无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat(7.0-7.1.2) 和 Oreo(8.0-8.1) 则不受影响。
- 解决办法有两种:
方法一
在AndroidManifest.xml配置文件的标签中直接插入(感谢junbs分享)
android:usesCleartextTraffic="true"
方法二
- 在res文件夹下创建一个xml文件夹,然后创建一个
network_security_config.xml
文件,文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
- 接着,在AndroidManifest.xml文件下的application标签增加以下属性:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
/>
完成,这个时候App就可以访问网络了。