diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
index 4195d5e4a6e..01f4be7ed22 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets
@@ -10,7 +10,8 @@ _ResolveAssemblies MSBuild target.
-
+
+ $(_OuterOutputPath)
@@ -157,4 +158,15 @@ _ResolveAssemblies MSBuild target.
+
+
+ <_ResolvedNativeLibraries Include="@(ResolvedFileToPublish)" Condition=" '%(ResolvedFileToPublish.Extension)' == '.so' " />
+
+
+
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
index e61481af702..94afbdb9779 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
+++ b/src/Xamarin.Android.Build.Tasks/Properties/Resources.resx
@@ -661,6 +661,12 @@ The following are literal names and should not be translated: ABI, 'libs/armeabi
Cannot determine ABI of native library '{0}'. Move this file to a directory with a valid Android ABI name such as 'libs/armeabi-v7a/'.The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native libraryCould not determine ABI of some native libraries. Ignoring those: {0}
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.cs.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.cs.xlf
index 4d06f645bbd..89758e91cd3 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.cs.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.cs.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.de.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.de.xlf
index bf10d050d47..e8842a503a9 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.de.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.de.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.es.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.es.xlf
index eb65dc7bb16..7891fde05f0 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.es.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.es.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.fr.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.fr.xlf
index 4a63a6a6cd2..0db56b97c2e 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.fr.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.fr.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.it.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.it.xlf
index 61cdf85c413..bb577873790 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.it.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.it.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ja.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ja.xlf
index 81a53fcbf70..1c298b192c0 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ja.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ja.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ko.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ko.xlf
index 6dbe735757b..1217ee0f137 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ko.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ko.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pl.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pl.xlf
index 5affac978b1..f1458e19045 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pl.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pl.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pt-BR.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pt-BR.xlf
index 7f7e09a323a..78508db3557 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pt-BR.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.pt-BR.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ru.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ru.xlf
index 353f846e7f0..03d949606de 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ru.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.ru.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.tr.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.tr.xlf
index bf296982d65..e6c7afb59b1 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.tr.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.tr.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hans.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hans.xlf
index 6c5f1fba528..f95f935c730 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hans.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hans.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hant.xlf b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hant.xlf
index b20dc32b30c..a41cf9bd506 100644
--- a/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hant.xlf
+++ b/src/Xamarin.Android.Build.Tasks/Properties/xlf/Resources.zh-Hant.xlf
@@ -64,6 +64,13 @@ The capitalized word "Portable" that appears earlier in the message is plain tex
In this message, the term "bundled" is a short way of saying "included into the final application package."
The following are literal names and should not be translated: ABI, 'libs/armeabi-v7a/'
{0} - The file path
+
+
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ Cannot determine ABI of native library '{0}'. Remove the '{1}' NuGet package, or notify the library author.
+ The following are literal names and should not be translated: ABI, NuGet
+{0} - The native library file path
+{1} - Either the name of the NuGet package or a path to the native library
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessNativeLibraries.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessNativeLibraries.cs
new file mode 100644
index 00000000000..67f6e95612c
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessNativeLibraries.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Microsoft.Build.Framework;
+
+namespace Xamarin.Android.Tasks
+{
+ ///
+ /// Processes .so files coming from @(ResolvedFileToPublish).
+ /// * Checks if ABI is valid
+ /// * Fixes up libmonodroid.so based on $(AndroidIncludeDebugSymbols)
+ ///
+ public class ProcessNativeLibraries : AndroidTask
+ {
+ public override string TaskPrefix => "PRNL";
+
+ ///
+ /// Assumed to be .so files only
+ ///
+ public ITaskItem [] InputLibraries { get; set; }
+
+ public bool IncludeDebugSymbols { get; set; }
+
+ [Output]
+ public ITaskItem [] OutputLibraries { get; set; }
+
+ public override bool RunTask ()
+ {
+ if (InputLibraries == null || InputLibraries.Length == 0)
+ return true;
+
+ var output = new List (InputLibraries.Length);
+
+ foreach (var library in InputLibraries) {
+ var abi = MonoAndroidHelper.GetNativeLibraryAbi (library);
+ if (string.IsNullOrEmpty (abi)) {
+ var packageId = library.GetMetadata ("NuGetPackageId");
+ if (!string.IsNullOrEmpty (packageId)) {
+ Log.LogCodedWarning ("XA4301", library.ItemSpec, 0, Properties.Resources.XA4301_ABI_NuGet, library.ItemSpec, packageId);
+ } else {
+ Log.LogCodedWarning ("XA4301", library.ItemSpec, 0, Properties.Resources.XA4301_ABI, library.ItemSpec);
+ }
+ continue;
+ }
+ // Both libmono-android.debug.so and libmono-android.release.so are in InputLibraries.
+ // Use IncludeDebugSymbols to determine which one to include.
+ // We may eventually have files such as `libmono-android-checked+asan.release.so` as well.
+ var fileName = Path.GetFileNameWithoutExtension (library.ItemSpec);
+ if (fileName.StartsWith ("libmono-android", StringComparison.Ordinal)) {
+ if (fileName.EndsWith (".debug", StringComparison.Ordinal)) {
+ if (!IncludeDebugSymbols)
+ continue;
+ library.SetMetadata ("ArchiveFileName", "libmonodroid.so");
+ } else if (fileName.EndsWith (".release", StringComparison.Ordinal)) {
+ if (IncludeDebugSymbols)
+ continue;
+ library.SetMetadata ("ArchiveFileName", "libmonodroid.so");
+ }
+ }
+ output.Add (library);
+ }
+
+ OutputLibraries = output.ToArray ();
+
+ return !Log.HasLoggedErrors;
+ }
+ }
+}
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 8ab33883574..dd745499009 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
@@ -3882,6 +3882,9 @@ public void AbiNameInIntermediateOutputPath ()
using (var b = CreateApkBuilder (Path.Combine ("temp", TestName))) {
Assert.IsTrue (b.Build (proj), "Build should have succeeded.");
Assert.IsFalse (StringAssertEx.ContainsText (b.LastBuildOutput, Path.Combine ("armeabi", "libe_sqlite3.so")), "Build should not use `armeabi`.");
+ if (Builder.UseDotNet) {
+ StringAssertEx.Contains ("warning XA4301", b.LastBuildOutput, "Should get a XA4301 warning");
+ }
}
}
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
index 5e162980d77..acbfb98bc3e 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
@@ -1816,69 +1816,6 @@ because xbuild doesn't support framework reference assemblies.
-
-
- <_Assemblies>@(_ResolvedFrameworkAssemblies)
- <_TargetInterpreterPrefix Condition=" '$(_AndroidUseInterpreter)' != 'False' ">interpreter-
- <_AndroidDebugNativeLibraries Condition=" '$(_AndroidDebugNativeLibraries)' == '' ">False
-
-
- <_TargetArchitecture Include="$(_Android32bitArchitectures);$(_Android64bitArchitectures)" />
-
-
- <_TargetLibDir Include="$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)') "/>
- <_TargetLibInterpreterDir Include="$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)') "/>
-
-
-
-
-
-
-
-
-
-
-
-
- <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' " Include="%(_TargetLibInterpreterDir.Identity)\libmono-native.so" />
- <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' == '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper.so" />
- <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' != '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper-checked+$(_AndroidCheckedBuild).so" ArchiveFileName="libxamarin-debug-app-helper.so" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<_NativeAssemblyTarget Include="@(_TypeMapAssemblySource->'$([System.IO.Path]::ChangeExtension('%(Identity)', '.o'))')">
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets
index 0d1cbf630c0..01333897e8b 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets
@@ -492,6 +492,44 @@ projects. .NET 5 projects will not import this file.
+
+
+ <_Assemblies>@(_ResolvedFrameworkAssemblies)
+ <_TargetInterpreterPrefix Condition=" '$(_AndroidUseInterpreter)' != 'False' ">interpreter-
+ <_AndroidDebugNativeLibraries Condition=" '$(_AndroidDebugNativeLibraries)' == '' ">False
+
+
+
+
+
+ <_TargetArchitecture Include="$(_Android32bitArchitectures);$(_Android64bitArchitectures)" />
+ <_TargetLibDir Include="$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\%(_TargetArchitecture.Identity)') "/>
+ <_TargetLibInterpreterDir Include="$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)" Condition=" Exists('$(MSBuildThisFileDirectory)lib\$(_TargetInterpreterPrefix)%(_TargetArchitecture.Identity)') "/>
+
+
+
+
+
+
+
+ <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' " Include="%(_TargetLibInterpreterDir.Identity)\libmono-native.so" />
+ <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' == '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper.so" />
+ <_AndroidNativeLibraryForFastDev Condition=" '$(_InstantRunEnabled)' == 'True' And '$(AndroidUseDebugRuntime)' == 'True' And '$(_AndroidCheckedBuild)' != '' " Include="%(_TargetLibDir.Identity)\libxamarin-debug-app-helper-checked+$(_AndroidCheckedBuild).so" ArchiveFileName="libxamarin-debug-app-helper.so" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<_PrepareAssembliesDependsOnTargets>
_ResolveAssemblies;