文章同步自javaexception

本周在适配Android 9.0,过程中碰到了小问题

问题1:

SSL handshake timed out

解决办法:

Android 9.0 开始,默认不允许明文传输,所以在建立网络连接时会使用 https 连接,同时进行安全认证。如果应用没有做对应处理,即会发生上述异常。

在应用中的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>标签里面添加android:networkSecurityConfig="@xml/network_security_config"即可解决此问题

问题2:

Android p 设备报错java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion

解决办法:

在androidManifest.xml文件的<Application>标签的内部,添加一个子标签,内容为

<uses-library android:name="org.apache.http.legacy" android:required="false" />