diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
index 6b627177c5e..ed73ea268e4 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
@@ -248,6 +248,15 @@ _ResolveAssemblies MSBuild target.
<_ResolvedNativeLibraries Include="@(ResolvedFileToPublish)" Condition=" '%(ResolvedFileToPublish.Extension)' == '.so' " />
+
+ <_ResolvedNativeLibraries Remove="@(_ResolvedNativeLibraries)"
+ Condition=" $([System.String]::new('%(Identity)').Replace('\','/').Contains('/runtimes/')) And
+ !$([System.String]::new('%(Identity)').Replace('\','/').Contains('/runtimes/android')) And
+ !$([System.String]::new('%(Identity)').Replace('\','/').Contains('/runtimes/linux-bionic')) " />
<_MonoComponent Condition=" '$(AndroidEnableProfiler)' == 'true' " Include="diagnostics_tracing" />
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs
index da233a70a47..d1f97917d20 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest2.cs
@@ -629,6 +629,38 @@ public void XA0141ErrorIsRaised ([Values] bool isRelease, [Values] AndroidRuntim
}
}
+ [Test]
+ public void NonAndroidNativeLibrariesDoNotProduceWarnings ()
+ {
+ var proj = new XamarinAndroidApplicationProject ();
+ // Create a dummy .so at a path mimicking a non-Android NuGet native library
+ proj.OtherBuildItems.Add (new BuildItem ("None", "runtimes/linux-x64/native/libFake.so") {
+ BinaryContent = () => new byte [128],
+ });
+ // Inject it into ResolvedFileToPublish with RuntimeIdentifier=android-arm64,
+ // simulating what the .NET SDK does for packages like Microsoft.Testing.Extensions.CodeCoverage
+ proj.Imports.Add (new Import ("non-android-so.targets") {
+ TextContent = () =>
+ """
+
+
+
+
+
+ android-arm64
+ FakePackage
+ 1.0.0
+
+
+
+
+ """,
+ });
+ using var b = CreateApkBuilder ();
+ Assert.IsTrue (b.Build (proj), "Build should have succeeded.");
+ b.AssertHasNoWarnings ();
+ }
+
static IEnumerable