📜  D NetworkSecurityConfig:未指定网络安全配置,使用平台默认值 (1)

📅  最后修改于: 2023-12-03 15:14:33.109000             🧑  作者: Mango

常见问题解决:D NetworkSecurityConfig:未指定网络安全配置,使用平台默认值

问题简述

当 Android 应用程序未指定网络安全配置时,会导致系统默认使用平台配置,而产生 D NetworkSecurityConfig 错误提示。

问题分析

现代安全标准下,谷歌推出了强制实施网络安全配置的措施,Android P 以上的系统版本,访问非 HTTPS 的服务将会被拦截掉,从而防止应用的数据被窃取、篡改或伪造。

因此,在开发过程中,如果应用中使用了 HTTP 请求,就会出现 "D NetworkSecurityConfig:未指定网络安全配置,使用平台默认值 " 的提示。

此时,需要对应用中的网络安全配置进行正确的设置,否则会影响应用在 Android P 以上版本的正常运行。

解决方法

通过以下步骤,可解决以上问题:

  1. 在应用根目录的 AndroidManifest.xml 中添加以下代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.app">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:usesCleartextTraffic="true"
        ... >
        ...
    </application>
</manifest>
  1. res 文件夹下新建 xml 文件夹并在该文件夹下新建 network_security_config.xml 文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
</network-security-config>
  1. 修改 AndroidManifest.xml 文件<application>节点中的 android:networkSecurityConfig 属性:
<application
    android:name=".MainApplication"
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
    ...
</application>
总结

在 Android P 以上版本中,需要对网络安全配置进行正确的设置,否则无法正常访问 HTTP 请求。

通过以上三个步骤,可在应用中正确配置网络安全配置,保证应用的正常运行。