遇到了以下錯(cuò)誤:
java.net.UnknownServiceException: CLEARTEXT communication ** not permitted by network security policy
因?yàn)榘沧啃掳姹灸J(rèn)是不允許使用明文網(wǎng)絡(luò)傳輸?shù)模瑫?huì)強(qiáng)制讓應(yīng)用都使用https冰肴。
Android P 限制了明文流量的網(wǎng)絡(luò)請(qǐng)求屈藐,非加密的流量請(qǐng)求都會(huì)被系統(tǒng)禁止掉。 如果當(dāng)前應(yīng)用的請(qǐng)求是 htttp 請(qǐng)求熙尉,而非 https ,這樣就會(huì)導(dǎo)系統(tǒng)禁止當(dāng)前應(yīng)用進(jìn)行該請(qǐng)求联逻,如果 WebView 的 url 用 http 協(xié)議,同樣會(huì)出現(xiàn)加載失敗检痰,https 不受影響包归。
具體步驟:
這是一個(gè)系統(tǒng)的網(wǎng)絡(luò)安全配置文件,在manifest文件中铅歼,application標(biāo)簽內(nèi)公壤,加入這一行內(nèi)容,引用配置文件就ok:
android:networkSecurityConfig="@xml/network_security_config"
在 res 下新建一個(gè) xml 目錄椎椰,然后創(chuàng)建一個(gè)名為:network_security_config.xml 文件 厦幅,該文件內(nèi)容如下
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>