Android模拟器:未指定网络安全配置,使用平台默认值

时间:2019-12-04 05:30:53

标签: android xamarin

希望您一切都好。 我正在处理Xamarin Forms。尽管在App.Android/Resource/xml下具有network_security_config.xml,尽管我在Android仿真器中发送HttpClient请求,但仍收到此错误“未指定网络安全配置,使用平台默认值”,但在android设备上工作正常。 以下是代码network_security_config.xml文件包含的内容:

<network-security-config>
  <base-config cleartextTrafficPermitted="true"/>
    <trust-anchors>
      <certificates src="system"/>
      <certificates src="user"/>
    </trust-anchors>
</network-security-config>

在清单文件中,我有以下代码。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:targetSandboxVersion="1" android:versionCode="1" android:versionName="1.0" package="com.companyname.app71" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
    <application android:label="Meha" android:icon="@drawable/logo_pink"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
    <application android:networkSecurityConfig="@xml/network_security_config" />
    <application android:hardwareAccelerated="true" />
    <application android:largeHeap="true" />
</manifest>

我想念什么?

1 个答案:

答案 0 :(得分:1)

尝试如下更改您的network_security_config.xml

<network-security-config>
  <base-config cleartextTrafficPermitted="false">
    <trust-anchors>
      <certificates src="system" />
    </trust-anchors>
  </base-config>
</network-security-config>

manifest一样:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:targetSandboxVersion="1" android:versionCode="1" android:versionName="1.0" package="com.companyname.app71" android:installLocation="auto">
  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
  <application android:label="Meha" android:icon="@drawable/logo_pink" android:networkSecurityConfig="@xml/network_security_config" android:hardwareAccelerated="true" android:largeHeap="true"></application>
</manifest>

正如Network security configuration所说,

针对 Android 9(API级别28)及更高版本的应用的默认配置如下:

<base-config cleartextTrafficPermitted="false">
  <trust-anchors>
    <certificates src="system" />
  </trust-anchors>
</base-config>

针对 Android 7.0(API级别24)到Android 8.1(API级别27)的应用程序的默认配置如下:

<base-config cleartextTrafficPermitted="true">
   <trust-anchors>
      <certificates src="system" />
   </trust-anchors>
</base-config>

面向 Android 6.0(API级别23)及更低版本的应用的默认配置如下:

<base-config cleartextTrafficPermitted="true">
  <trust-anchors>
     <certificates src="system" />
     <certificates src="user" />
  </trust-anchors>
</base-config>