diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 66b9c8cef5b..93814e1c6fd 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -175,9 +175,30 @@ public void ClassLibraryHasNoWarnings () //NOTE: these properties should not affect class libraries at all proj.SetProperty ("AndroidPackageFormat", "aab"); proj.SetProperty ("AotAssemblies", "true"); + proj.SetProperty ("AndroidEnableMultiDex", "true"); using (var b = CreateDllBuilder ()) { Assert.IsTrue (b.Build (proj), "Build should have succeeded."); Assert.IsTrue (StringAssertEx.ContainsText (b.LastBuildOutput, " 0 Warning(s)"), "Should have no MSBuild warnings."); + + // $(AndroidEnableMultiDex) should not add android-support-multidex.jar! + if (Builder.UseDotNet) { + var aarPath = Path.Combine (Root, b.ProjectDirectory, proj.OutputPath, $"{proj.ProjectName}.aar"); + using var zip = Xamarin.Tools.Zip.ZipArchive.Open (aarPath, FileMode.Open); + Assert.IsFalse (zip.Any (e => e.FullName.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)), + $"{aarPath} should not contain a .jar file!"); + } else { + var assemblyPath = Path.Combine (Root, b.ProjectDirectory, proj.OutputPath, $"{proj.ProjectName}.dll"); + using var assembly = AssemblyDefinition.ReadAssembly (assemblyPath); + const string libraryProjects = "__AndroidLibraryProjects__.zip"; + var resource = assembly.MainModule.Resources.OfType () + .FirstOrDefault (e => e.Name == libraryProjects); + Assert.IsNotNull (resource, $"{assemblyPath} should contain {libraryProjects}"); + + using var stream = resource.GetResourceStream (); + using var zip = Xamarin.Tools.Zip.ZipArchive.Open (stream); + Assert.IsFalse (zip.Any (e => e.FullName.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)), + $"{resource.Name} should not contain a .jar file!"); + } } } diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index d90315b758d..d6d64205270 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1021,7 +1021,8 @@ because xbuild doesn't support framework reference assemblies. - +