Предупреждение XA0149 в .NET для Android

Примеры сообщений

предупреждение XA0149: игнорируется устаревший файл среды Xamarin.Android '__AndroidEnvironment__abc123' из пакета NuGet 'Some.Old.Package' версии '1.2.3' в сборке '/path/to/Some.Old.Package.dll'. Файлы среды из библиотек классов Xamarin.Android не поддерживаются в .NET для Android. Используйте более новую версию этого пакета NuGet или уведомите автора библиотеки.

предупреждение XA0149: Игнорируется устаревший файл среды Xamarin.Android "__AndroidEnvironment__abc123" в сборке "/path/to/SomeLibrary.dll". Файлы среды из библиотек классов Xamarin.Android не поддерживаются в .NET для Android. Используйте более новую версию этой сборки или уведомите автора библиотеки.

Issue

Ссылаемая сборка (обычно из более старой библиотеки классов Xamarin.Android или из пакета NuGet, предназначенного для MonoAndroid) содержит встроенный ресурс __AndroidEnvironment__*. .NET для Android не использует файлы среды, внесенные библиотеками классов с помощью этого устаревшего механизма, поэтому файл игнорируется.

Это тесно связано с предупреждением NU1703, которое NuGet выдает для пакетов, по-прежнему ориентированных на устаревшую платформу MonoAndroid.

Решение

Обновите пакет или библиотеку NuGet до версии, предназначенной для net-android (.NET для Android). Если вы поддерживаете библиотеку, перестройте её как библиотеку классов .NET for Android, чтобы все переменные среды формировались в поддерживаемой структуре AAR .net/env/.

Если вашему приложению требуются переменные среды, объявите их непосредственно в проекте вашего приложения с помощью элемента @(AndroidEnvironment):

<ItemGroup>
  <AndroidEnvironment Include="env.txt" />
</ItemGroup>