关于连接WIFI后不能访问内网服务器的问题

问题:

今天遇到一个奇葩问题,APP打包后,外网服务器可以访问,内网服务器不能访问,查看一下,确定服务器正常,手机连接的是公司WIFI,换一台手机试试,外网内网都可以访问,也就怪了,说明一下:正常的手机是vivo x23(android 8),不正常的手机是华为P20(android 9/p)。

所以,只能debug了,报错如下:java.net.UnknownServiceException: CLEARTEXT communication to 192.168.1.211 not permitted by network security policy,啥,网络不安全。

解决:

百度一下才知道还真有网络安全问题。参考https://blog.csdn.net/yonbor605/article/details/82223882

有以下三种解决方案:
           1、APP改用https请求
           2、targetSdkVersion 降到27以下
           3、在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件(名字自定) ,内容如下,大概意思就是允许开启http请求



    

然后在APP的AndroidManifest.xml文件下的application标签增加以下属性

到这里就应该可以了,但是我的程序突然就退出,停止运行了,又报错:java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/util/ByteArrayBuffer   这个错误是使用targetSdkVersion 28集成讯飞语音合成或百度语音合成时出现的

大致错误就是找不到org.apache.http.util.ByteArrayBuffer之类的,解决方法为在AndroidManifest.xml的中加入以下代码:

到这里我的问题也就解决了,内部网络也可以访问了。
 

你可能感兴趣的:(android)