diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/GetImportedLibraries.cs b/src/Xamarin.Android.Build.Tasks/Tasks/GetImportedLibraries.cs index c1381885de8..153c76a1680 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/GetImportedLibraries.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/GetImportedLibraries.cs @@ -14,6 +14,12 @@ namespace Xamarin.Android.Tasks { public class GetImportedLibraries : Task { + static readonly string [] IgnoredManifestDirectories = new [] { + "bin", + "manifest", + "aapt", + }; + [Required] public string TargetDirectory { get; set; } @@ -37,13 +43,14 @@ public override bool Execute () return true; } // there could be ./AndroidManifest.xml and bin/AndroidManifest.xml, which will be the same. So, ignore "bin" ones. - ManifestDocuments = Directory.GetFiles (TargetDirectory, "AndroidManifest.xml", SearchOption.AllDirectories) - .Where (f => { - var directory = Path.GetFileName (Path.GetDirectoryName (f)); - return directory != "bin" && directory != "manifest"; - }) - .Select (p => new TaskItem (p)) - .ToArray (); + var manifestDocuments = new List (); + foreach (var f in Directory.EnumerateFiles (TargetDirectory, "AndroidManifest.xml", SearchOption.AllDirectories)) { + var directory = Path.GetFileName (Path.GetDirectoryName (f)); + if (IgnoredManifestDirectories.Contains (directory)) + continue; + manifestDocuments.Add (new TaskItem (f)); + } + ManifestDocuments = manifestDocuments.ToArray (); NativeLibraries = Directory.GetFiles (TargetDirectory, "*.so", SearchOption.AllDirectories) .Where (p => MonoAndroidHelper.GetNativeLibraryAbi (p) != null) .Select (p => new TaskItem (p)).ToArray ();