diff --git a/Documentation/docs-mobile/messages/index.md b/Documentation/docs-mobile/messages/index.md
index b6999ba8de8..86374f9328a 100644
--- a/Documentation/docs-mobile/messages/index.md
+++ b/Documentation/docs-mobile/messages/index.md
@@ -233,6 +233,9 @@ Either change the value in the AndroidManifest.xml to match the $(SupportedOSPla
+ [XA4313](xa4313.md): Framework assembly has been deprecated.
+ [XA4314](xa4314.md): `$(Property)` is empty. A value for `$(Property)` should be provided.
+ [XA4315](xa4315.md): Ignoring {file}. Manifest does not have the required 'package' attribute on the manifest element.
++ [XA4316](xa4316.md): Specified input file '{file}' does not exist. Ignoring.
++ [XA4317](xa4317.md): Input file '{file}' does not start with ``. Skipping.
++ [XA4318](xa4318.md): Input file '{file}' could not be read: {message}. Skipping.
## XA5xxx: GCC and toolchain
diff --git a/Documentation/docs-mobile/messages/xa4316.md b/Documentation/docs-mobile/messages/xa4316.md
new file mode 100644
index 00000000000..e7a44421ce2
--- /dev/null
+++ b/Documentation/docs-mobile/messages/xa4316.md
@@ -0,0 +1,25 @@
+---
+title: .NET for Android warning XA4316
+description: XA4316 warning code
+ms.date: 05/22/2026
+f1_keywords:
+ - "XA4316"
+---
+
+# .NET for Android warning XA4316
+
+## Example messages
+
+```
+warning XA4316: Specified input file '{file}' does not exist. Ignoring.
+```
+
+## Issue
+
+A remap XML input file specified via the `InputRemapXmlFiles` item group does
+not exist on disk. The file is ignored and the build continues.
+
+## Solution
+
+Verify that the file path is correct and that the file exists. Remove the
+reference if the file is no longer needed.
diff --git a/Documentation/docs-mobile/messages/xa4317.md b/Documentation/docs-mobile/messages/xa4317.md
new file mode 100644
index 00000000000..b2f6f51781a
--- /dev/null
+++ b/Documentation/docs-mobile/messages/xa4317.md
@@ -0,0 +1,31 @@
+---
+title: .NET for Android warning XA4317
+description: XA4317 warning code
+ms.date: 05/22/2026
+f1_keywords:
+ - "XA4317"
+---
+
+# .NET for Android warning XA4317
+
+## Example messages
+
+```
+warning XA4317: Input file '{file}' does not start with ''. Skipping.
+```
+
+## Issue
+
+A remap XML input file does not have `` as its root element.
+Files passed to the remap XML merge must use the `` root element.
+
+## Solution
+
+Ensure the XML file has the correct format with `` as the root
+element:
+
+```xml
+
+
+
+```
diff --git a/Documentation/docs-mobile/messages/xa4318.md b/Documentation/docs-mobile/messages/xa4318.md
new file mode 100644
index 00000000000..96676f78990
--- /dev/null
+++ b/Documentation/docs-mobile/messages/xa4318.md
@@ -0,0 +1,26 @@
+---
+title: .NET for Android warning XA4318
+description: XA4318 warning code
+ms.date: 05/22/2026
+f1_keywords:
+ - "XA4318"
+---
+
+# .NET for Android warning XA4318
+
+## Example messages
+
+```
+warning XA4318: Input file '{file}' could not be read: {message}. Skipping.
+```
+
+## Issue
+
+A remap XML input file could not be read, for example because it contains
+invalid XML or there is a permissions issue. The file is skipped and the build
+continues.
+
+## Solution
+
+Verify that the file contains valid XML and that the build process has
+permission to read it.
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs b/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
index 26289b9e7d9..61c82f0d4b2 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.Designer.cs
@@ -1726,6 +1726,33 @@ public static string XA4315 {
}
}
+ ///
+ /// Looks up a localized string similar to Specified input file '{0}' does not exist. Ignoring..
+ ///
+ public static string XA4316 {
+ get {
+ return ResourceManager.GetString("XA4316", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Input file '{0}' does not start with '<replacements/>'. Skipping..
+ ///
+ public static string XA4317 {
+ get {
+ return ResourceManager.GetString("XA4317", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Input file '{0}' could not be read: {1}. Skipping..
+ ///
+ public static string XA4318 {
+ get {
+ return ResourceManager.GetString("XA4318", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Missing Android NDK toolchains directory '{0}'. Please install the Android NDK..
///
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
index b58a93543f0..220d5540291 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
@@ -836,6 +836,22 @@ Remove the '{0}' reference from your project and add the '{1}' NuGet package ins
Ignoring `{0}`. Manifest does not have the required 'package' attribute on the manifest element.
{0} - The path the the file.
+
+
+
+ Specified input file '{0}' does not exist. Ignoring.
+ {0} - The path to the file.
+
+
+
+ Input file '{0}' does not start with '<replacements/>'. Skipping.
+ {0} - The path to the file.
+
+
+
+ Input file '{0}' could not be read: {1}. Skipping.
+ {0} - The path to the file.
+{1} - The exception message.
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/MergeRemapXml.cs b/src/Xamarin.Android.Build.Tasks/Tasks/MergeRemapXml.cs
index 29ba45a0905..67cb1ec4323 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/MergeRemapXml.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/MergeRemapXml.cs
@@ -53,7 +53,7 @@ public override bool RunTask ()
void MergeInputFile (XmlWriter writer, string file)
{
if (!File.Exists (file)) {
- Log.LogWarning ($"Specified input file `{file}` does not exist. Ignoring.");
+ Log.LogCodedWarning ("XA4316", Properties.Resources.XA4316, file);
return;
}
var settings = new XmlReaderSettings {
@@ -65,7 +65,7 @@ void MergeInputFile (XmlWriter writer, string file)
return;
}
if (reader.LocalName != "replacements") {
- Log.LogWarning ($"Input file `{file}` does not start with ``. Skipping.");
+ Log.LogCodedWarning ("XA4317", Properties.Resources.XA4317, file);
return;
}
while (reader.Read ()) {
@@ -76,7 +76,7 @@ void MergeInputFile (XmlWriter writer, string file)
}
}
catch (Exception e) {
- Log.LogWarning ($"Input file `{file}` could not be read: {e.Message} Skipping.");
+ Log.LogCodedWarning ("XA4318", Properties.Resources.XA4318, file, e.Message);
Log.LogDebugMessage ($"Input file `{file}` could not be read: {e.ToString ()}");
}
}