原因
在新版Android 9.0 (API 28)中,规定所有应用程序默认使用 Https进行网络通信,不能使用Http进行明文通信。这个规定会导致app的Http访问权限受限,进而会抛出异常
W/System.err: java.io.IOException: Cleartext HTTP traffic to www.xxx.com
解决办法
-
改用Https访问,前提是服务器支持Https且SSL证书有效,否则会抛出异常
javax.net.ssl.SSLHandshakeException: Handshake failed
-
targetSdkVersion降到27(含)以下
-
自定义网络安全设置①
在 AndroidManifest.xml 的 application 标签中设置 networkSecurityConfig 属性:<application ... android:allowBackup="true" android:icon="${app_icon}"