diff --git a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj
index b0fc296935d..6c4368fd7d2 100644
--- a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj
+++ b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj
@@ -16,8 +16,6 @@
-
-
diff --git a/src/Xamarin.Android.Build.Tasks/Linker/External/Linker.Steps/BaseStep.cs b/src/Xamarin.Android.Build.Tasks/Linker/External/Linker.Steps/BaseStep.cs
index c1aa1ded94a..a3a5bb11066 100644
--- a/src/Xamarin.Android.Build.Tasks/Linker/External/Linker.Steps/BaseStep.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/External/Linker.Steps/BaseStep.cs
@@ -89,11 +89,7 @@ public virtual void LogMessage (string message)
public virtual void LogError (int code, string message)
{
-#if ILLINK
- Context.LogMessage (MessageContainer.CreateCustomErrorMessage (message, code, origin: new MessageOrigin ()));
-#else // !ILLINK
Context.LogError ($"XA{code}", message);
-#endif // !ILLINK
}
}
}
diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixLegacyResourceDesignerStep.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixLegacyResourceDesignerStep.cs
index 7606f022e7a..7028aea33e0 100644
--- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixLegacyResourceDesignerStep.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixLegacyResourceDesignerStep.cs
@@ -14,18 +14,11 @@
using Mono.Linker.Steps;
using Mono.Tuner;
-#if ILLINK
-using Resources = Microsoft.Android.Sdk.ILLink.Properties.Resources;
-#else // !ILLINK
using Resources = Xamarin.Android.Tasks.Properties.Resources;
-#endif // ILLINK
namespace MonoDroid.Tuner
{
- public class FixLegacyResourceDesignerStep : LinkDesignerBase
-#if !ILLINK
- , Xamarin.Android.Tasks.IAssemblyModifierPipelineStep
-#endif // !ILLINK
+ public class FixLegacyResourceDesignerStep : LinkDesignerBase, Xamarin.Android.Tasks.IAssemblyModifierPipelineStep
{
internal const string DesignerAssemblyName = "_Microsoft.Android.Resource.Designer";
internal const string DesignerAssemblyNamespace = "_Microsoft.Android.Resource.Designer";
@@ -36,14 +29,6 @@ public class FixLegacyResourceDesignerStep : LinkDesignerBase
Dictionary lookup;
Dictionary lookupCaseInsensitive;
- protected override void EndProcess ()
- {
- if (designerAssembly != null) {
- LogMessage ($" Setting Action on {designerAssembly.Name} to Link.");
- Annotations.SetAction (designerAssembly, AssemblyAction.Link);
- }
- }
-
protected override void LoadDesigner ()
{
if (designerLoaded)
@@ -72,7 +57,6 @@ protected override void LoadDesigner ()
}
}
-#if !ILLINK
public void ProcessAssembly (AssemblyDefinition assembly, Xamarin.Android.Tasks.StepContext context)
{
// Only run this step on non-main user Android assemblies
@@ -81,7 +65,6 @@ public void ProcessAssembly (AssemblyDefinition assembly, Xamarin.Android.Tasks.
context.IsAssemblyModified |= ProcessAssemblyDesigner (assembly);
}
-#endif // !ILLINK
internal override bool ProcessAssemblyDesigner (AssemblyDefinition assembly)
{
diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/LinkDesignerBase.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/LinkDesignerBase.cs
index 5f7f7fc1f74..6e50b10d7d7 100644
--- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/LinkDesignerBase.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/LinkDesignerBase.cs
@@ -4,16 +4,12 @@
using Mono.Linker;
using Mono.Linker.Steps;
using System;
-using System.Linq;
using Xamarin.Android.Tasks;
using System.Collections.Generic;
using System.Globalization;
using Mono.Cecil.Cil;
using System.Text.RegularExpressions;
using Mono.Collections.Generic;
-#if ILLINK
-using Microsoft.Android.Sdk.ILLink;
-#endif
namespace MonoDroid.Tuner {
@@ -21,26 +17,14 @@ public abstract class LinkDesignerBase : BaseStep
{
protected IMetadataResolver Cache => Context;
- public
-#if !ILLINK
- override
-#endif
- void LogMessage (string message)
+ public override void LogMessage (string message)
{
Context.LogMessage (message);
}
- public
-#if !ILLINK
- override
-#endif
- void LogError (int code, string error)
+ public override void LogError (int code, string error)
{
-#if ILLINK
- Context.LogMessage (MessageContainer.CreateCustomErrorMessage (error, code, origin: new MessageOrigin ()));
-#else // !ILLINK
Context.LogError ($"XA{code}", error);
-#endif // !ILLINK
}
public virtual AssemblyDefinition Resolve (AssemblyNameReference name)
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Resource.Designer.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Resource.Designer.targets
index 5c154d9e05c..7105bf0286c 100644
--- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Resource.Designer.targets
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Resource.Designer.targets
@@ -226,11 +226,30 @@ Copyright (C) 2016 Xamarin. All rights reserved.
In additon we MUST set the `PostprocessAssembly` metadata to `true` so that the file
is processed by the ILLink step. If we do not do this then the reference to
`netstandard.dll` is not replaced with `System.Private.CoreLib` and the app crashes.
+
+ We use a TrimmerRootDescriptor (not TrimmerRootAssembly) to prevent ILLink from
+ trimming the designer's resource properties. FixLegacyResourceDesignerStep runs
+ after ILLink and needs all properties present when rewriting library assemblies.
+ A descriptor (-x) preserves types without making the assembly an entry point,
+ which avoids pulling netstandard.dll into the output.
+ See https://github.com/dotnet/runtime/issues/126518
+
+ TODO: Once dotnet/runtime#126518 is fixed and flows to dotnet/android,
+ simplify this to use TrimmerRootAssembly instead of the XML descriptor.
-->
+
+ <_DesignerLinkerDescriptor>$(IntermediateOutputPath)_Microsoft.Android.Resource.Designer.xml
+
+
$(_DesignerAssemblyName).dll
@@ -238,6 +257,12 @@ Copyright (C) 2016 Xamarin. All rights reserved.
true
true
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets
index 699b9baf1e3..27389d0db3e 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets
@@ -167,7 +167,7 @@
+ DependsOnTargets="GetReferenceAssemblyPaths;_CreatePropertiesCache;_AddResourceDesignerToPublishFiles">
true
<_ExtraTrimmerArgs Condition=" '$(_EnableSerializationDiscovery)' != 'false' ">--enable-serialization-discovery $(_ExtraTrimmerArgs)
@@ -204,12 +204,6 @@
<_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" Type="Microsoft.Android.Sdk.ILLink.PreserveJavaInterfaces" />
- <_TrimmerCustomSteps
- Condition=" '$(AndroidUseDesignerAssembly)' == 'true' "
- Include="$(_AndroidLinkerCustomStepAssembly)"
- BeforeStep="MarkStep"
- Type="MonoDroid.Tuner.FixLegacyResourceDesignerStep"
- />
<_TrimmerCustomSteps
Condition=" '$(_AndroidTypeMapImplementation)' == 'managed' "
Include="$(_AndroidLinkerCustomStepAssembly)"
@@ -254,7 +248,8 @@
Assemblies="@(_PostTrimmingAssembly)"
AddKeepAlives="$(AndroidAddKeepAlives)"
AndroidLinkResources="$(AndroidLinkResources)"
- Deterministic="$(Deterministic)" />
+ Deterministic="$(Deterministic)"
+ UseDesignerAssembly="$(AndroidUseDesignerAssembly)" />
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/PostTrimmingPipeline.cs b/src/Xamarin.Android.Build.Tasks/Tasks/PostTrimmingPipeline.cs
index fa3c3385737..df2f1d48b53 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/PostTrimmingPipeline.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/PostTrimmingPipeline.cs
@@ -6,6 +6,7 @@
using Microsoft.Android.Build.Tasks;
using Microsoft.Build.Framework;
using Mono.Cecil;
+using Mono.Linker;
using MonoDroid.Tuner;
namespace Xamarin.Android.Tasks;
@@ -34,6 +35,8 @@ public class PostTrimmingPipeline : AndroidTask
public bool Deterministic { get; set; }
+ public bool UseDesignerAssembly { get; set; }
+
public override bool RunTask ()
{
using var resolver = new DirectoryAssemblyResolver (
@@ -100,6 +103,15 @@ public override bool RunTask ()
},
(msg) => Log.LogDebugMessage (msg)));
}
+ if (UseDesignerAssembly) {
+ // Create an MSBuildLinkContext so FixLegacyResourceDesignerStep can resolve assemblies
+ // and log messages. The resolver is owned by the outer 'using' block, so we intentionally
+ // do not dispose this context (LinkContext.Dispose would double-dispose the resolver).
+ var linkContext = new MSBuildLinkContext (resolver, Log);
+ var fixLegacyStep = new FixLegacyResourceDesignerStep ();
+ fixLegacyStep.Initialize (linkContext);
+ steps.Add (new PostTrimmingFixLegacyResourceDesignerStep (fixLegacyStep));
+ }
foreach (var (item, assembly) in loadedAssemblies) {
var context = new StepContext (item, item);
@@ -118,3 +130,24 @@ public override bool RunTask ()
return !Log.HasLoggedErrors;
}
}
+
+///
+/// Thin wrapper around for the post-trimming pipeline.
+/// Calls directly, matching the
+/// behavior of the former ILLink path which processed all assemblies without StepContext flag filtering.
+/// Assemblies without a resource designer are skipped internally by ProcessAssemblyDesigner.
+///
+class PostTrimmingFixLegacyResourceDesignerStep : IAssemblyModifierPipelineStep
+{
+ readonly FixLegacyResourceDesignerStep _inner;
+
+ public PostTrimmingFixLegacyResourceDesignerStep (FixLegacyResourceDesignerStep inner)
+ {
+ _inner = inner;
+ }
+
+ public void ProcessAssembly (AssemblyDefinition assembly, StepContext context)
+ {
+ context.IsAssemblyModified |= _inner.ProcessAssemblyDesigner (assembly);
+ }
+}
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc
index ef8da6c5bd7..9c3e342a13d 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.CoreCLR.apkdesc
@@ -5,25 +5,25 @@
"Size": 3036
},
"classes.dex": {
- "Size": 397520
+ "Size": 400044
},
"lib/arm64-v8a/libassembly-store.so": {
- "Size": 3091928
+ "Size": 3115312
},
"lib/arm64-v8a/libclrjit.so": {
- "Size": 3141224
+ "Size": 3202072
},
"lib/arm64-v8a/libcoreclr.so": {
- "Size": 5736320
+ "Size": 5766640
},
"lib/arm64-v8a/libmonodroid.so": {
- "Size": 1375784
+ "Size": 1365104
},
"lib/arm64-v8a/libmscordaccore.so": {
- "Size": 2442416
+ "Size": 2493552
},
"lib/arm64-v8a/libmscordbi.so": {
- "Size": 1894280
+ "Size": 1902744
},
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
"Size": 71936
@@ -32,13 +32,13 @@
"Size": 1281696
},
"lib/arm64-v8a/libSystem.Native.so": {
- "Size": 105664
+ "Size": 107904
},
"lib/arm64-v8a/libSystem.Security.Cryptography.Native.Android.so": {
"Size": 165536
},
"lib/arm64-v8a/libxamarin-app.so": {
- "Size": 20128
+ "Size": 20520
},
"META-INF/BNDLTOOL.RSA": {
"Size": 1221
@@ -74,5 +74,5 @@
"Size": 1904
}
},
- "PackageSize": 9176858
+ "PackageSize": 9258778
}
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc
index 81aafc33724..5b76d46097d 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.MonoVM.apkdesc
@@ -8,16 +8,16 @@
"Size": 22388
},
"lib/arm64-v8a/lib__Microsoft.Android.Resource.Designer.dll.so": {
- "Size": 18288
+ "Size": 18696
},
"lib/arm64-v8a/lib_Java.Interop.dll.so": {
- "Size": 88040
+ "Size": 88048
},
"lib/arm64-v8a/lib_Mono.Android.dll.so": {
- "Size": 118024
+ "Size": 117928
},
"lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": {
- "Size": 26544
+ "Size": 26464
},
"lib/arm64-v8a/lib_System.Console.dll.so": {
"Size": 24432
@@ -35,7 +35,7 @@
"Size": 21632
},
"lib/arm64-v8a/lib_UnnamedProject.dll.so": {
- "Size": 20032
+ "Size": 20144
},
"lib/arm64-v8a/libarc.bin.so": {
"Size": 19176
@@ -44,7 +44,7 @@
"Size": 36616
},
"lib/arm64-v8a/libmonodroid.so": {
- "Size": 1386512
+ "Size": 1386072
},
"lib/arm64-v8a/libmonosgen-2.0.so": {
"Size": 3124368
@@ -62,7 +62,7 @@
"Size": 165536
},
"lib/arm64-v8a/libxamarin-app.so": {
- "Size": 19840
+ "Size": 19792
},
"META-INF/BNDLTOOL.RSA": {
"Size": 1221
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc
index ece794fa0da..f3a4ee3f174 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64SimpleDotNet.NativeAOT.apkdesc
@@ -5,13 +5,13 @@
"Size": 3124
},
"classes.dex": {
- "Size": 24224
+ "Size": 25400
},
"lib/arm64-v8a/libUnnamedProject.so": {
- "Size": 4968680
+ "Size": 5056848
},
"META-INF/BNDLTOOL.RSA": {
- "Size": 1211
+ "Size": 1221
},
"META-INF/BNDLTOOL.SF": {
"Size": 1211
@@ -44,5 +44,5 @@
"Size": 1904
}
},
- "PackageSize": 2094050
+ "PackageSize": 2122722
}
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc
index ba0b9bd02ed..2d96ae07999 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.CoreCLR.apkdesc
@@ -5,7 +5,7 @@
"Size": 6652
},
"classes.dex": {
- "Size": 9447644
+ "Size": 9444112
},
"classes2.dex": {
"Size": 156448
@@ -32,22 +32,22 @@
"Size": 2396
},
"lib/arm64-v8a/libassembly-store.so": {
- "Size": 14041376
+ "Size": 14459432
},
"lib/arm64-v8a/libclrjit.so": {
- "Size": 3141224
+ "Size": 3202072
},
"lib/arm64-v8a/libcoreclr.so": {
- "Size": 5736320
+ "Size": 5766640
},
"lib/arm64-v8a/libmonodroid.so": {
- "Size": 1375784
+ "Size": 1365104
},
"lib/arm64-v8a/libmscordaccore.so": {
- "Size": 2442416
+ "Size": 2493552
},
"lib/arm64-v8a/libmscordbi.so": {
- "Size": 1894280
+ "Size": 1902744
},
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
"Size": 71936
@@ -56,13 +56,13 @@
"Size": 1281696
},
"lib/arm64-v8a/libSystem.Native.so": {
- "Size": 105664
+ "Size": 107904
},
"lib/arm64-v8a/libSystem.Security.Cryptography.Native.Android.so": {
"Size": 165536
},
"lib/arm64-v8a/libxamarin-app.so": {
- "Size": 147200
+ "Size": 147368
},
"META-INF/androidx.activity_activity.version": {
"Size": 6
@@ -215,7 +215,7 @@
"Size": 6
},
"META-INF/BNDLTOOL.RSA": {
- "Size": 1223
+ "Size": 1221
},
"META-INF/BNDLTOOL.SF": {
"Size": 90346
@@ -2285,5 +2285,5 @@
"Size": 812848
}
},
- "PackageSize": 22766523
+ "PackageSize": 23086011
}
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc
index fd8f2a40c19..054a451576a 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.MonoVM.apkdesc
@@ -5,7 +5,7 @@
"Size": 6652
},
"classes.dex": {
- "Size": 9165600
+ "Size": 9159624
},
"kotlin/annotation/annotation.kotlin_builtins": {
"Size": 928
@@ -29,139 +29,139 @@
"Size": 2396
},
"lib/arm64-v8a/lib__Microsoft.Android.Resource.Designer.dll.so": {
- "Size": 19544
+ "Size": 258400
},
"lib/arm64-v8a/lib_FormsViewGroup.dll.so": {
"Size": 25424
},
"lib/arm64-v8a/lib_Java.Interop.dll.so": {
- "Size": 96664
+ "Size": 96656
},
"lib/arm64-v8a/lib_Mono.Android.dll.so": {
- "Size": 541152
+ "Size": 541880
},
"lib/arm64-v8a/lib_Mono.Android.Runtime.dll.so": {
- "Size": 26328
+ "Size": 26464
},
"lib/arm64-v8a/lib_mscorlib.dll.so": {
- "Size": 21464
+ "Size": 21472
},
"lib/arm64-v8a/lib_netstandard.dll.so": {
- "Size": 23112
+ "Size": 23120
},
"lib/arm64-v8a/lib_System.Collections.dll.so": {
- "Size": 34008
+ "Size": 34024
},
"lib/arm64-v8a/lib_System.Collections.NonGeneric.dll.so": {
- "Size": 25680
+ "Size": 25688
},
"lib/arm64-v8a/lib_System.Collections.Specialized.dll.so": {
- "Size": 23872
+ "Size": 23880
},
"lib/arm64-v8a/lib_System.ComponentModel.dll.so": {
- "Size": 19624
+ "Size": 19632
},
"lib/arm64-v8a/lib_System.ComponentModel.Primitives.dll.so": {
- "Size": 21352
+ "Size": 21368
},
"lib/arm64-v8a/lib_System.ComponentModel.TypeConverter.dll.so": {
- "Size": 43664
+ "Size": 43672
},
"lib/arm64-v8a/lib_System.Console.dll.so": {
- "Size": 24456
+ "Size": 24464
},
"lib/arm64-v8a/lib_System.Core.dll.so": {
- "Size": 19488
+ "Size": 19496
},
"lib/arm64-v8a/lib_System.Diagnostics.TraceSource.dll.so": {
- "Size": 24648
+ "Size": 24656
},
"lib/arm64-v8a/lib_System.dll.so": {
"Size": 19888
},
"lib/arm64-v8a/lib_System.Drawing.dll.so": {
- "Size": 19464
+ "Size": 19472
},
"lib/arm64-v8a/lib_System.Drawing.Primitives.dll.so": {
- "Size": 30080
+ "Size": 30096
},
"lib/arm64-v8a/lib_System.Formats.Asn1.dll.so": {
- "Size": 50200
+ "Size": 51040
},
"lib/arm64-v8a/lib_System.IO.Compression.Brotli.dll.so": {
- "Size": 29608
+ "Size": 29616
},
"lib/arm64-v8a/lib_System.IO.Compression.dll.so": {
- "Size": 34672
+ "Size": 34680
},
"lib/arm64-v8a/lib_System.IO.IsolatedStorage.dll.so": {
- "Size": 28304
+ "Size": 28312
},
"lib/arm64-v8a/lib_System.Linq.dll.so": {
- "Size": 48136
+ "Size": 48144
},
"lib/arm64-v8a/lib_System.Linq.Expressions.dll.so": {
- "Size": 186032
+ "Size": 186048
},
"lib/arm64-v8a/lib_System.Net.Http.dll.so": {
- "Size": 86736
+ "Size": 86752
},
"lib/arm64-v8a/lib_System.Net.Primitives.dll.so": {
- "Size": 42376
+ "Size": 42384
},
"lib/arm64-v8a/lib_System.Net.Requests.dll.so": {
- "Size": 21584
+ "Size": 21592
},
"lib/arm64-v8a/lib_System.ObjectModel.dll.so": {
- "Size": 27040
+ "Size": 27048
},
"lib/arm64-v8a/lib_System.Private.CoreLib.dll.so": {
- "Size": 994736
+ "Size": 997176
},
"lib/arm64-v8a/lib_System.Private.DataContractSerialization.dll.so": {
- "Size": 217984
+ "Size": 217968
},
"lib/arm64-v8a/lib_System.Private.Uri.dll.so": {
- "Size": 62344
+ "Size": 62280
},
"lib/arm64-v8a/lib_System.Private.Xml.dll.so": {
- "Size": 236832
+ "Size": 237032
},
"lib/arm64-v8a/lib_System.Private.Xml.Linq.dll.so": {
- "Size": 35536
+ "Size": 35544
},
"lib/arm64-v8a/lib_System.Runtime.dll.so": {
- "Size": 20360
+ "Size": 20424
},
"lib/arm64-v8a/lib_System.Runtime.InteropServices.dll.so": {
- "Size": 21624
+ "Size": 21632
},
"lib/arm64-v8a/lib_System.Runtime.Numerics.dll.so": {
"Size": 61504
},
"lib/arm64-v8a/lib_System.Runtime.Serialization.dll.so": {
- "Size": 19392
+ "Size": 19400
},
"lib/arm64-v8a/lib_System.Runtime.Serialization.Formatters.dll.so": {
"Size": 20368
},
"lib/arm64-v8a/lib_System.Runtime.Serialization.Primitives.dll.so": {
- "Size": 21488
+ "Size": 21496
},
"lib/arm64-v8a/lib_System.Security.Cryptography.dll.so": {
- "Size": 82176
+ "Size": 82088
},
"lib/arm64-v8a/lib_System.Text.RegularExpressions.dll.so": {
- "Size": 191264
+ "Size": 194000
},
"lib/arm64-v8a/lib_System.Xml.dll.so": {
- "Size": 19280
+ "Size": 19288
},
"lib/arm64-v8a/lib_System.Xml.Linq.dll.so": {
- "Size": 19296
+ "Size": 19304
},
"lib/arm64-v8a/lib_UnnamedProject.dll.so": {
- "Size": 22104
+ "Size": 22216
},
"lib/arm64-v8a/lib_Xamarin.AndroidX.Activity.dll.so": {
"Size": 34960
@@ -221,10 +221,10 @@
"Size": 581000
},
"lib/arm64-v8a/lib_Xamarin.Forms.Platform.Android.dll.so": {
- "Size": 390456
+ "Size": 390544
},
"lib/arm64-v8a/lib_Xamarin.Forms.Platform.dll.so": {
- "Size": 35848
+ "Size": 35992
},
"lib/arm64-v8a/lib_Xamarin.Forms.Xaml.dll.so": {
"Size": 80632
@@ -233,16 +233,16 @@
"Size": 84768
},
"lib/arm64-v8a/libarc.bin.so": {
- "Size": 19112
+ "Size": 19176
},
"lib/arm64-v8a/libmono-component-marshal-ilgen.so": {
"Size": 36616
},
"lib/arm64-v8a/libmonodroid.so": {
- "Size": 1386232
+ "Size": 1386072
},
"lib/arm64-v8a/libmonosgen-2.0.so": {
- "Size": 3123608
+ "Size": 3124368
},
"lib/arm64-v8a/libSystem.Globalization.Native.so": {
"Size": 71936
@@ -251,13 +251,13 @@
"Size": 1281696
},
"lib/arm64-v8a/libSystem.Native.so": {
- "Size": 105664
+ "Size": 107904
},
"lib/arm64-v8a/libSystem.Security.Cryptography.Native.Android.so": {
"Size": 165536
},
"lib/arm64-v8a/libxamarin-app.so": {
- "Size": 350616
+ "Size": 350576
},
"META-INF/androidx.activity_activity.version": {
"Size": 6
@@ -2480,5 +2480,5 @@
"Size": 812848
}
},
- "PackageSize": 11131965
+ "PackageSize": 11287613
}
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.NativeAOT.apkdesc b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.NativeAOT.apkdesc
index 4ce53ff43f2..c86f1cb9523 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.NativeAOT.apkdesc
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Resources/Base/BuildReleaseArm64XFormsDotNet.NativeAOT.apkdesc
@@ -5,7 +5,7 @@
"Size": 6740
},
"classes.dex": {
- "Size": 9136980
+ "Size": 9131612
},
"kotlin/annotation/annotation.kotlin_builtins": {
"Size": 928
@@ -29,7 +29,7 @@
"Size": 2396
},
"lib/arm64-v8a/libUnnamedProject.so": {
- "Size": 21592848
+ "Size": 22749272
},
"META-INF/androidx.activity_activity.version": {
"Size": 6
@@ -182,7 +182,7 @@
"Size": 6
},
"META-INF/BNDLTOOL.RSA": {
- "Size": 1223
+ "Size": 1221
},
"META-INF/BNDLTOOL.SF": {
"Size": 89178
@@ -2252,5 +2252,5 @@
"Size": 812848
}
},
- "PackageSize": 12521545
+ "PackageSize": 12808265
}
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
index c58aa29aa6e..4070a690f88 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
@@ -45,7 +45,7 @@
-
+
diff --git a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs
index 04e52ee9839..8a8194f3cfe 100644
--- a/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs
+++ b/tests/MSBuildDeviceIntegration/Tests/InstallAndRunTests.cs
@@ -1420,10 +1420,9 @@ private void OnPaintSurface(object sender, SKPaintSurfaceEventArgs e)
using (var b = CreateApkBuilder (Path.Combine ("temp", TestName, app.ProjectName))) {
b.BuildLogFile = "build1.log";
b.ThrowOnBuildFailure = false;
- // TODO: fix for NativeAOT
- if (!addResource && runtime != AndroidRuntime.NativeAOT) {
+ if (!addResource) {
Assert.IsFalse (b.Build (app, doNotCleanupOnUpdate: true), $"Build of {app.ProjectName} should have failed.");
- Assert.IsTrue (b.LastBuildOutput.ContainsText (isRelease ? "IL8000" : "XA8000"));
+ Assert.IsTrue (b.LastBuildOutput.ContainsText ("XA8000"));
Assert.IsTrue (b.LastBuildOutput.ContainsText ("@styleable/SKCanvasView"), "Expected '@styleable/SKCanvasView' in build output.");
Assert.IsTrue (b.LastBuildOutput.ContainsText ("@styleable/SKCanvasView_ignorePixelScaling"), "Expected '@styleable/SKCanvasView_ignorePixelScaling' in build output.");
return;