.NET for Android 警告 XA0149

示例消息

警告 XA0149:忽略位于程序集“/path/to/Some.Old.Package.dll”中的 NuGet 包“Some.Old.Package”版本“1.2.3”里的旧版 Xamarin.Android 环境文件“__AndroidEnvironment__abc123”。 来自 Xamarin.Android 类库的环境文件在 .NET for Android 中不受支持。 使用此 NuGet 包的较新版本或通知库作者。

警告 XA0149:正在忽略程序集“/path/to/SomeLibrary.dll”中的旧版 Xamarin.Android 环境文件“__AndroidEnvironment__abc123”。 来自 Xamarin.Android 类库的环境文件在适用于 Android 的 .NET 中不受支持。 使用此程序集的较新版本或通知库作者。

Issue

被引用的程序集(通常来自较旧的 Xamarin.Android 类库或以 MonoAndroid 为目标的 NuGet 包)包含嵌入式 __AndroidEnvironment__* 资源。 .NET for Android 不会通过此旧机制使用类库提供的环境文件,因此会忽略该文件。

这与 NuGet 对仍以已弃用的 MonoAndroid 框架为目标的包发出的 NU1703 警告密切相关。

解决方案

更新到以 net-android(适用于 Android 的 .NET)为目标的 NuGet 包或库版本。 如果你负责维护该库,请将其重新构建为适用于 Android 的 .NET 类库,以便按照受支持的 .net/env/ AAR 布局生成环境变量。

如果您的应用程序需要这些环境变量,请在应用项目中使用 @(AndroidEnvironment) 项直接声明它们:

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