美文网首页APP端
java.net.UnknownServiceException

java.net.UnknownServiceException

作者: 我们都很努力着 | 来源:发表于2019-05-14 12:17 被阅读0次

    Android API 28 配置 networkSecurityConfig

    错误原因:这个错误是在安卓P系统上当调用远程接口进行网络通信时报的错误。

    解释:由于 Android P(版本27以上) 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。所以如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求。

    解决方式一

    项目改用https请求;

    解决方式二

    项目的targetSdkVersion改为27以下;

    解决方式三

    在 application 元素中添加:

    android:usesCleartextTraffic="true"
    

    注: 不推荐

    1. 为了安全,不建议上面的使用明文的通信方式,不过上面的这种方法可以作为一种临时的通信策略

    2. 如果声明不使用明文通信,则可以在application元素中添加:android:usesCleartextTraffic=”false” 此声明指示该应用不使用明文网络通信。例如,如果您的应用意外尝试通过 HTTP 明文请求登录用户,该请求将被阻止,该用户的身份和密码信息不会泄露到网络上。

    解决方式四

    在res的xml目录下,新建一个xml文件(名称自定义,如:network_security_config.xml),内容如下:

    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">XXX.XXX.XXX.XXX</domain>
    </domain-config>
    </network-security-config>
    

    XXX.XXX.XXX.XXX填域名或者ip 表示只将本服务XXX.XXX.XXX.XXX器放开。
    注: 推荐

    解决方式五

    在res的xml目录下,新建一个xml文件(名称自定义,如:network_security_config.xml),内容如下:

    <network-security-config>
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    ```xml
    在manifest清单文件配置application:
    

    <application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...
    />

    相关文章

      网友评论

        本文标题:java.net.UnknownServiceException

        本文链接:https://www.haomeiwen.com/subject/inqsaqtx.html