Android 9.0网络权限 java unknownserviceexception:CLEARTEXT co not permittted by network securitly policy

我在运行安卓是发生报错:

java unknownserviceexception:CLEARTEXT communication to.open.bmob.com not permittted by network securitly policy

原因是 Google 在新一代 SDK ( 28 以上 )中加入一项规定:

Android P 将禁止 App 使用所有未加密的连接


解决方案:


方案一:( 最直接粗暴,但不建议使用 )

将 build.gradle ( app ) 中,targetSdkVersion 版本号降低到 27 以下,如:

Android 9.0网络权限 java unknownserviceexception:CLEARTEXT co not permittted by network securitly policy

但这样治标不治本


方案二:

首先,在 res 文件下建立 xml 文件夹 ,在其中在建立 network_security_config 文件

Android 9.0网络权限 java unknownserviceexception:CLEARTEXT co not permittted by network securitly policy

其中 network_security_config.xml 文件内容如下所示

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" overridePins="true" />
            <certificates src="user" overridePins="true" />
        </trust-anchors>
    </base-config>
</network-security-config>

其次,并在 AndroidMainfest 的 /application 目录下调用:

Android 9.0网络权限 java unknownserviceexception:CLEARTEXT co not permittted by network securitly policy

这行代码如下:

android:networkSecurityConfig="@xml/network_security_config"

sync 并运行,问题完美解决

如果对您有帮助欢迎关注获得更多咨询