0

我正在尝试将网络安全配置文件添加到使用 Xamarin 工具构建的 Android 应用程序中。(Xamarin 形成版本 2.5.1.527436)。

我按照本文中的步骤操作: https ://devblogs.microsoft.com/xamarin/cleartext-http-android-network-security/

我的 network_security.config.xml 文件只包含两个 TLS 覆盖,用于由应用内浏览器访问的站点,此时无法在服务器端启用 https/tls:

<?xml version="1.0" encoding="utf-8" ?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">xxx.somedomain.com</domain>
    <domain includeSubdomains="true">yyy.somedomain.com</domain>
  </domain-config>
</network-security-config>

在 AndroidManifest.xml 文件中,我刚刚添加了 android:networkSecurityConfig="@xml/network_security_config":

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.somecompany.someapp" android:versionName="1.2.3 (October 2019)" android:versionCode="3" android:installLocation="auto">
  <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />
...
  <application android:largeHeap="true"
    android:label="Some App Name"
    android:icon="@drawable/icon"
    android:theme="@style/AppTheme"
    android:networkSecurityConfig="@xml/network_security_config">
...
  </application>
</manifest>

但是,在启动时,对 Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication 的调用会引发空引用异常,而没有任何进一步的详细信息。

[0:] System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.InternalSetPage (Xamarin.Forms.Page page) [0x0005e] in D:\agent_work\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:315
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.SetMainPage () [0x00000] in D:\agent_work\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:343
at Xamarin.Forms.Platform.Android.FormsAppCompatActivity.LoadApplication (Xamarin.Forms.Application application) [0x0025c] in D:\agent_work\1\s\Xamarin.Forms.Platform.Android\AppCompat\FormsAppCompatActivity.cs:139
at SomeApp.MainActivity.OnCreate (Android.OS.Bundle savedInstanceState) [0x001db] in D:\work\xxx\MainActivity.cs:173

我不确定我是否遗漏了什么,或者在添加网络安全配置文件时是否涉及某些 Xamarin 版本依赖项..?有任何想法吗?

4

1 回答 1

1

您的应用中的 xamarin.forms 版本似乎仍然是 2.5.x ,最新版本是 4.2.x 。所以首先我建议你可以更新它。否则,由于兼容性,可能会出现一些未知问题。

于 2019-10-15T13:29:41.547 回答