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 Get_XA1037PropertyDeprecatedWarningData () { var ret = new List ();