diff --git a/.external b/.external index 39511b205a8..579f13b883b 100644 --- a/.external +++ b/.external @@ -1 +1 @@ -xamarin/monodroid:main@93ab95e18077d56d9d55ce7b4069a534e2dea35e +xamarin/monodroid:main@c6aae9e5a154cfbf2c3a94e046fa2c747c3b82e2 diff --git a/Xamarin.Android.code-workspace b/Xamarin.Android.code-workspace index 327ad56b9d4..217de4789b6 100644 --- a/Xamarin.Android.code-workspace +++ b/Xamarin.Android.code-workspace @@ -5,6 +5,7 @@ } ], "settings": { - "nxunitExplorer.logpanel": true + "nxunitExplorer.logpanel": true, + "java.compile.nullAnalysis.mode": "disabled" } } \ No newline at end of file diff --git a/build-tools/automation/yaml-templates/stage-msbuild-emulator-tests.yaml b/build-tools/automation/yaml-templates/stage-msbuild-emulator-tests.yaml index f2c23e9a2bf..4e71b44222e 100644 --- a/build-tools/automation/yaml-templates/stage-msbuild-emulator-tests.yaml +++ b/build-tools/automation/yaml-templates/stage-msbuild-emulator-tests.yaml @@ -4,7 +4,7 @@ parameters: stageName: msbuilddevice_tests job_name: 'mac_dotnetdevice_tests' dependsOn: mac_build - agent_count: 8 + agent_count: 12 stageCondition: succeeded() stagePrefix: '' xaSourcePath: $(System.DefaultWorkingDirectory) diff --git a/build-tools/automation/yaml-templates/stage-msbuild-tests.yaml b/build-tools/automation/yaml-templates/stage-msbuild-tests.yaml index d20e1549812..434de192f42 100644 --- a/build-tools/automation/yaml-templates/stage-msbuild-tests.yaml +++ b/build-tools/automation/yaml-templates/stage-msbuild-tests.yaml @@ -22,7 +22,7 @@ stages: testOS: macOS jobName: mac_msbuild_tests jobDisplayName: macOS > Tests > MSBuild - agentCount: 8 + agentCount: 14 xaSourcePath: ${{ parameters.xaSourcePath }} repositoryAlias: ${{ parameters.repositoryAlias }} commit: ${{ parameters.commit }} diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs index 02ce62f6b87..426dce71b71 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs @@ -146,6 +146,7 @@ static bool IsFromAKnownRuntimePack (ITaskItem assembly) // Sometimes .pdb files are not included in @(ResolvedFileToPublish), so add them if they exist if (File.Exists (symbolPath)) { symbols [symbolPath] = symbol = new TaskItem (symbolPath); + return symbol; } } return symbol; @@ -185,6 +186,7 @@ void SetIt (ITaskItem? item) } string destination = Path.Combine (abi, item.GetMetadata ("DestinationSubDirectory")); + //Log.LogDebugMessage ($"DEBUG!!!'{item.ItemSpec}' '{rid}' = '{abi}'. DestinationSubDirectory='{destination}'"); item.SetMetadata ("DestinationSubDirectory", destination + Path.DirectorySeparatorChar); item.SetMetadata ("DestinationSubPath", Path.Combine (destination, Path.GetFileName (item.ItemSpec))); } diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/DeviceTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/DeviceTest.cs index 18f022cbc05..a6dec7fe137 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/DeviceTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/DeviceTest.cs @@ -11,6 +11,7 @@ using System.Xml.Linq; using System.Xml.XPath; using Xamarin.ProjectTools; +using System.Runtime.InteropServices; namespace Xamarin.Android.Build.Tests { @@ -77,7 +78,10 @@ public void DeviceSetup () } SetAdbLogcatBufferSize (128); CreateGuestUser (GuestUserName); + return; } + TestContext.Out.WriteLine ($"LOG DeviceSetup: No Device!!!!"); + DeviceAbi = RuntimeInformation.OSArchitecture == Architecture.Arm64 ? "arm64-v8a" : "x86_64"; } [OneTimeTearDown] diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 6a96fe3decf..8440186e901 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -496,10 +496,6 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. ResourceName="XA0119_LinkTool" Condition=" '$(EmbedAssembliesIntoApk)' != 'True' And '$(AndroidLinkTool)' != '' " /> - "namespace Library1 { public class Class1 { public static int foo = 0; } }" + TextContent = () => "namespace Library1 { public class Class1 { public static int foo = 500; } }" }; var lib1 = new XamarinAndroidLibraryProject () { ProjectName = "Library1", @@ -509,7 +514,7 @@ public void IncrementalFastDeployment () }; var class2src = new BuildItem.Source ("Class2.cs") { - TextContent = () => "namespace Library2 { public class Class2 { public static int foo = 0; } }" + TextContent = () => "namespace Library2 { public class Class2 { public static int foo = 40; } }" }; var lib2 = new DotNetStandard { ProjectName = "Library2", @@ -527,16 +532,21 @@ public void IncrementalFastDeployment () new BuildItem ("ProjectReference", "..\\Library2\\Library2.csproj"), }, }; + app.SetProperty ("AndroidPackageFormat", packageFormat); // Set up library projects var rootPath = Path.Combine (Root, "temp", TestName); - using (var lb1 = CreateDllBuilder (Path.Combine (rootPath, lib1.ProjectName))) + using (var lb1 = CreateDllBuilder (Path.Combine (rootPath, lib1.ProjectName))) { + lb1.BuildLogFile = "build.log"; Assert.IsTrue (lb1.Build (lib1), "First library build should have succeeded."); - using (var lb2 = CreateDllBuilder (Path.Combine (rootPath, lib2.ProjectName))) + } + using (var lb2 = CreateDllBuilder (Path.Combine (rootPath, lib2.ProjectName))) { + lb2.BuildLogFile = "build.log"; Assert.IsTrue (lb2.Build (lib2), "Second library build should have succeeded."); + } long lib1FirstBuildSize = new FileInfo (Path.Combine (rootPath, lib1.ProjectName, lib1.OutputPath, "Library1.dll")).Length; - + using (var builder = CreateApkBuilder (Path.Combine (rootPath, app.ProjectName))) { builder.Verbosity = LoggerVerbosity.Detailed; builder.ThrowOnBuildFailure = false; @@ -560,13 +570,15 @@ public void IncrementalFastDeployment () File.SetLastWriteTimeUtc (file, DateTime.UtcNow); } - class1src.TextContent = () => "namespace Library1 { public class Class1 { public static int foo = 100; } }"; + class1src.TextContent = () => "namespace Library1 { public class Class1 { public static int foo = 1; } }"; class1src.Timestamp = DateTime.UtcNow.AddSeconds(1); - using (var lb1 = CreateDllBuilder (Path.Combine (rootPath, lib1.ProjectName))) + using (var lb1 = CreateDllBuilder (Path.Combine (rootPath, lib1.ProjectName))) { + lb1.BuildLogFile = "build2.log"; Assert.IsTrue (lb1.Build (lib1), "Second library build should have succeeded."); + } long lib1SecondBuildSize = new FileInfo (Path.Combine (rootPath, lib1.ProjectName, lib1.OutputPath, "Library1.dll")).Length; - Assert.AreEqual (lib1FirstBuildSize, lib1SecondBuildSize, "Library2.dll was not the same size."); + Assert.AreEqual (lib1FirstBuildSize, lib1SecondBuildSize, "Library1.dll was not the same size."); builder.BuildLogFile = "install3.log"; Assert.IsTrue (builder.Install (app, doNotCleanupOnUpdate: true, saveProject: false), "Third install should have succeeded.");