Я пытаюсь добавить файл конфигурации сетевой безопасности в приложение для Android, созданное с помощью инструментов Xamarin. (Xamarin формы версии 2.5.1.527436).
Я выполнил действия, описанные в этой статье: https://devblogs.microsoft.com/xamarin/cleartext-http-android-network-security/
Мой файл network_security.config.xml просто содержит два переопределения TLS для сайтов, к которым обращается In-app браузер, и где 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
I'mне уверен, что я что-то упустил, или при добавлении файла конфигурации безопасности сети была задействована какая-то зависимость от версии Xamarin? Есть идеи?