关于Android P不能使用明文网络通信

在使用阿里云oss的API时,遇到了以下错误:

CLEARTEXT communication to " xxxxxxxxx" not permitted by network security policy

这个异常应该是oss的api调用的okHttp3抛出的,因为安卓新版本默认是不允许使用明文网络传输的,会强制让应用都使用https。

文档:

关于Android P不能使用明文网络通信
但是我们可以通过修改项目的网络配置来允许使用http传输(虽然这样是不被建议的)

具体步骤如下

按照上面的图片下面的框框部分内容,新建文件,这是一个系统的网络安全配置文件,里面还有很多其他的内容,具体参考这个链接。下一步,在manifest文件中,application标签内,加入这一行内容,引用配置文件就ok:

android:networkSecurityConfig="@xml/network_security_config"