文章同步自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" />