diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index fd082a697a0..08602508370 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -1,4 +1,4 @@ -using System; +using System; using Xamarin.ProjectTools; using NUnit.Framework; using System.Linq; @@ -110,6 +110,29 @@ public void DesignTimeBuild ([Values(false, true)] bool isRelease) } } + [Test] + public void CheckEmbeddedSupportLibraryResources () + { + var proj = new XamarinAndroidApplicationProject () { + IsRelease = true, + Packages = { + KnownPackages.SupportMediaCompat_25_4_0_1, + KnownPackages.SupportFragment_25_4_0_1, + KnownPackages.SupportCoreUtils_25_4_0_1, + KnownPackages.SupportCoreUI_25_4_0_1, + KnownPackages.SupportCompat_25_4_0_1, + KnownPackages.AndroidSupportV4_25_4_0_1, + KnownPackages.SupportV7AppCompat_25_4_0_1, + }, + TargetFrameworkVersion = "v7.1", + }; + using (var b = CreateApkBuilder ("temp/CheckEmbeddedSupportLibraryResources")) { + Assert.IsTrue (b.Build (proj), "First build should have succeeded."); + var Rdrawable = b.Output.GetIntermediaryPath (Path.Combine ("android", "bin", "classes", "android", "support", "v7", "appcompat", "R$drawable.class")); + Assert.IsTrue (File.Exists (Rdrawable), $"{Rdrawable} should exist"); + } + } + [Test] public void MoveResource () { diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs index 1c7272784e7..1a56afed90d 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs @@ -40,6 +40,15 @@ public static class KnownPackages MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v4.23.1.1.0\\lib\\MonoAndroid403\\Xamarin.Android.Support.v4.dll" } } }; + public static Package AndroidSupportV4_25_4_0_1 = new Package () { + Id = "Xamarin.Android.Support.v4", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.v4") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v4.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.v4.dll" } + } + }; public static Package AndroidSupportV4Beta = new Package () { Id = "Xamarin.Android.Support.v4", Version = "21.0.0.0-beta1", @@ -139,6 +148,60 @@ public static class KnownPackages MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.AppCompat.23.1.1.0\\lib\\MonoAndroid403\\Xamarin.Android.Support.v7.AppCompat.dll" } } }; + public static Package SupportV7AppCompat_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.v7.AppCompat", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.v7.AppCompat") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.v7.AppCompat.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.v7.AppCompat.dll" } + } + }; + public static Package SupportCompat_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.Compat", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.Compat") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Compat.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.Compat.dll" } + } + }; + public static Package SupportCoreUI_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.Core.UI", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.Core.UI") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Core.UI.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.Core.UI.dll" } + } + }; + public static Package SupportCoreUtils_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.Core.Utils", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.Core.Utils") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Core.Utils.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.Core.Utils.dll" } + } + }; + public static Package SupportFragment_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.Fragment", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.Fragment") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Fragment.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.Fragment.dll" } + } + }; + public static Package SupportMediaCompat_25_4_0_1 = new Package { + Id = "Xamarin.Android.Support.Media.Compat", + Version = "25.4.0.1", + TargetFramework = "MonoAndroid70", + References = { + new BuildItem.Reference ("Xamarin.Android.Support.Media.Compat") { + MetadataValues = "HintPath=..\\packages\\Xamarin.Android.Support.Media.Compat.25.4.0.1\\lib\\MonoAndroid70\\Xamarin.Android.Support.Media.Compat.dll" } + } + }; public static Package SupportV7MediaRouter_21_0_3_0 = new Package { Id = "Xamarin.Android.Support.v7.MediaRouter", Version = "21.0.3.0", diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index b72a1aaeeb3..fd3d9ff5529 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1198,8 +1198,7 @@ because xbuild doesn't support framework reference assemblies. @@ -1208,7 +1207,7 @@ because xbuild doesn't support framework reference assemblies. ImportsDirectory="$(_LibraryProjectImportsDirectoryName)" OutputImportDirectory="$(_AndroidLibrayProjectIntermediatePath)" UseShortFileNames="$(UseShortFileNames)" - ManifestFiles="@(_AdditonalAndroidResourceCachePaths->'%(Identity)\AndroidManifest.xml')" + ManifestFiles="@(_AdditonalAndroidResourceCachePaths->'%(Identity)\AndroidManifest.xml');@(LibraryResourceDirectories->'%(Identity)\..\AndroidManifest.xml')" ApplicationName="$(_AndroidPackage)" JavaPlatformJarPath="$(JavaPlatformJarPath)" NonConstantId="true"