起因
在新建工程集成我们自己的aar时,在注册时,明明网络通常,却一直返回网络不通的错误码,换了原来的旧工程却不会有这个问题。用源码跑了几遍,aar的集成方式也过了几遍,甚至把工程都给同事试了,结果还是一样,百思不得其解。
解决方式
在确认了各种方式都没有问题,依然不能注册成功以后,想起了Android P(9.0) http网络请求的问题这篇博客,然后试了一下,欸,终于可以了。。。
后来看了下新工程默认的targetSdkVersion是29,而aar里面的网络请求用的是http。
采用的解决方式如下(以下内容来源于Android P(9.0) http网络请求的问题):
1.在 res 下新增一个 xml 目录
2.在xml目录下,创建一个名为:network_security_config.xml 文件(名字自定) ,内容如下,大概意思就是允许开启http请求:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
3.在app的AndroidManifest.xml文件下的application标签增加以下属性:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...
/>
- 如果项目中使用了http请求,并且项目的targetSdkVersion>=28,则需要采用上面的处理方式,如果targetSdkVersion<28,则可以不用处理。