diff --git a/Xamarin.Android-Tests.sln b/Xamarin.Android-Tests.sln
index 308a55fd1eb..31bb7178a37 100644
--- a/Xamarin.Android-Tests.sln
+++ b/Xamarin.Android-Tests.sln
@@ -76,6 +76,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Performance-Tests", "Perfor
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "timing", "build-tools\timing\timing.csproj", "{37CAA28C-40BE-4253-BA68-CC5D7316A617}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.DefaultInterfaceMethods-Tests", "tests\CodeGen-Binding\Xamarin.Android.DefaultInterfaceMethods-Tests\Xamarin.Android.DefaultInterfaceMethods-Tests.csproj", "{80E5171A-56DF-48AC-8AD9-65028319C1B8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.DefaultInterfaceMethods-Lib", "tests\CodeGen-Binding\Xamarin.Android.DefaultInterfaceMethods-Lib\Xamarin.Android.DefaultInterfaceMethods-Lib.csproj", "{E2F0F78B-6088-4282-A49C-122EE28611FF}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
tests\Xamarin.Forms-Performance-Integration\Xamarin.Forms.Performance.Integration.projitems*{195be9c2-1f91-40dc-bd6d-de860bf083fb}*SharedItemsImports = 13
@@ -194,6 +198,14 @@ Global
{37CAA28C-40BE-4253-BA68-CC5D7316A617}.Debug|Any CPU.Build.0 = Debug|Any CPU
{37CAA28C-40BE-4253-BA68-CC5D7316A617}.Release|Any CPU.ActiveCfg = Release|Any CPU
{37CAA28C-40BE-4253-BA68-CC5D7316A617}.Release|Any CPU.Build.0 = Release|Any CPU
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -225,6 +237,8 @@ Global
{F4DAFD78-BE76-46C9-A1AD-85D8C91CD77B} = {9B63992C-2201-4BB0-BD00-D637B481A995}
{2DD1EE75-6D8D-4653-A800-0A24367F7F38} = {9B63992C-2201-4BB0-BD00-D637B481A995}
{37CAA28C-40BE-4253-BA68-CC5D7316A617} = {68B8E272-5B12-47AA-8923-550B9CE535C7}
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8} = {2EFFECF5-1CCA-4005-AE62-1D6F01C88DF4}
+ {E2F0F78B-6088-4282-A49C-122EE28611FF} = {2EFFECF5-1CCA-4005-AE62-1D6F01C88DF4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8643CD20-B195-4919-8135-27549488237E}
diff --git a/build-tools/scripts/BuildEverything.mk b/build-tools/scripts/BuildEverything.mk
index 14a0a05344d..90180ccbb44 100644
--- a/build-tools/scripts/BuildEverything.mk
+++ b/build-tools/scripts/BuildEverything.mk
@@ -39,7 +39,6 @@ STABLE_FRAMEWORKS = $(foreach a, $(STABLE_API_LEVELS), $(word $(a),$(ALL_FRAMEWO
PLATFORM_IDS = $(foreach a, $(API_LEVELS), $(word $(a),$(ALL_PLATFORM_IDS)))
ALL_JIT_ABIS = \
- armeabi \
armeabi-v7a \
arm64-v8a \
x86 \
diff --git a/external/Java.Interop b/external/Java.Interop
index 5efe5c29a0f..8bba66d4192 160000
--- a/external/Java.Interop
+++ b/external/Java.Interop
@@ -1 +1 @@
-Subproject commit 5efe5c29a0f0e1b7e80bc0b51d847c339d438f9a
+Subproject commit 8bba66d41929e00cf0ff41b3b57d24fbb7f77a51
diff --git a/src/Mono.Android/Java.Util/Spliterators.cs b/src/Mono.Android/Java.Util/Spliterators.cs
index d6a327dc480..99dbbe3de0c 100644
--- a/src/Mono.Android/Java.Util/Spliterators.cs
+++ b/src/Mono.Android/Java.Util/Spliterators.cs
@@ -1,4 +1,4 @@
-#if ANDROID_24
+#if false//ANDROID_24
using System;
using Android.Runtime;
using Java.Interop;
@@ -6,7 +6,6 @@
namespace Java.Util
{
- // FIXME: this should not be required to be hand-bound.
public partial class Spliterators
{
public partial class AbstractSpliterator
diff --git a/src/Mono.Android/Mono.Android.targets b/src/Mono.Android/Mono.Android.targets
index f8242c06ada..1acde6c0f70 100644
--- a/src/Mono.Android/Mono.Android.targets
+++ b/src/Mono.Android/Mono.Android.targets
@@ -3,6 +3,10 @@
+
+ ..\..\packages\xamarin.android.csc.dim.0.1.2\tools\
+ latest
+
@@ -78,6 +82,7 @@
"$(XAInstallPrefix)xbuild\Xamarin\Android\generator.exe"
<_GenFlags>--public --product-version=7
+ <_DefaultInterfaceMethods>--default-interface-methods
<_ApiLevel>--api-level=$(AndroidApiLevel)
<_Out>-o "$(IntermediateOutputPath)mcw"
<_Codegen>--codegen-target=XAJavaInterop1
@@ -92,7 +97,7 @@
<_Dirs>--enumdir=$(IntermediateOutputPath)mcw
diff --git a/src/Mono.Android/Test/Mono.Android-Tests.targets b/src/Mono.Android/Test/Mono.Android-Tests.targets
index b33a84782d6..3deadce4d45 100644
--- a/src/Mono.Android/Test/Mono.Android-Tests.targets
+++ b/src/Mono.Android/Test/Mono.Android-Tests.targets
@@ -2,7 +2,6 @@
-
diff --git a/src/Mono.Android/Test/jni/Application.mk b/src/Mono.Android/Test/jni/Application.mk
index 49ec634fc40..729645b114c 100644
--- a/src/Mono.Android/Test/jni/Application.mk
+++ b/src/Mono.Android/Test/jni/Application.mk
@@ -1,2 +1,2 @@
# Build both ARMv5TE and ARMv7-A machine code.
-APP_ABI := arm64-v8a armeabi armeabi-v7a x86 x86_64
+APP_ABI := arm64-v8a armeabi-v7a x86 x86_64
diff --git a/src/Mono.Android/metadata b/src/Mono.Android/metadata
index 1525b120dd0..99c65ee4f56 100644
--- a/src/Mono.Android/metadata
+++ b/src/Mono.Android/metadata
@@ -1253,6 +1253,12 @@
-->
Java.Util.ISpliterator
+
+
+
+
+
+
Android.Service.QuickSettings
ColorObject
+
+ AnimationStart2
+ AnimationEnd2
+
+ false
+
+
+ java.util.function.Consumer
+
diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs
index 101ecc5052b..32e582c0eef 100644
--- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Linq;
using Mono.Cecil;
@@ -163,7 +164,7 @@ bool FixAbstractMethods (TypeDefinition type)
if (ifaceDef.HasGenericParameters)
continue;
- foreach (var iMethod in ifaceDef.Methods) {
+ foreach (var iMethod in ifaceDef.Methods.Where (m => m.IsAbstract)) {
bool exists = false;
foreach (var tMethod in typeMethods) {
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs b/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
index e3555270254..9fb962f1ca3 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/Generator.cs
@@ -41,6 +41,8 @@ public class BindingsGenerator : AndroidToolTask
public bool UseShortFileNames { get; set; }
+ public bool EnableDefaultInterfaceMethods { get; set; }
+
// apart from ReferencedManagedLibraries we need it to find mscorlib.dll.
[Required]
public string MonoAndroidFrameworkDirectories { get; set; }
@@ -64,6 +66,7 @@ public override bool Execute ()
Log.LogDebugMessage (" AssemblyName: {0}", AssemblyName);
Log.LogDebugMessage (" AndroidApiLevel: {0}", AndroidApiLevel);
Log.LogDebugMessage (" UseShortFileNames: {0}", UseShortFileNames);
+ Log.LogDebugMessage (" EnableDefaultInterfaceMethods: {0}", EnableDefaultInterfaceMethods);
Log.LogDebugTaskItems (" TransformFiles:", TransformFiles);
Log.LogDebugTaskItems (" ReferencedManagedLibraries:", ReferencedManagedLibraries);
Log.LogDebugTaskItems (" AnnotationsZipFiles:", AnnotationsZipFiles);
@@ -119,6 +122,8 @@ protected override string GenerateCommandLineCommands ()
cmd.AppendSwitchIfNotNull ("--enumdir=", EnumDirectory);
cmd.AppendSwitchIfNotNull ("--enummetadata=", EnumMetadataDirectory);
cmd.AppendSwitchIfNotNull ("--assembly=", AssemblyName);
+ if (EnableDefaultInterfaceMethods)
+ cmd.AppendSwitch ("--default-interface-methods");
if (!NoStdlib) {
string fxpath = MonoAndroidFrameworkDirectories.Split (';').First (p => new DirectoryInfo (p).GetFiles ("mscorlib.dll").Any ());
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs
index ff18627c040..dd08038bc48 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs
@@ -446,5 +446,59 @@ public String greet (String name, java.util.Date date)
Assert.IsTrue (xml.Contains (" - name to display."), "missing doc");
}
}
+
+ [Test]
+ [TestCaseSource ("ClassParseOptions")]
+ public void BindDefaultInterfaceMethods (string classParser)
+ {
+ var proj = new XamarinAndroidBindingProject () {
+ IsRelease = true,
+ };
+ proj.Packages.Add (new Package { Id = "xamarin.android.csc.dim", Version = "0.1.2" });
+ // The sources for the .jar is in the jar itself.
+ string classesJarBase64 = @"
+UEsDBBQACAgIANWk6UwAAAAAAAAAAAAAAAAJAAQATUVUQS1JTkYv/soAAAMAUEsHCAAAAAACAAAAAAA
+AAFBLAwQUAAgICADVpOlMAAAAAAAAAAAAAAAAFAAAAE1FVEEtSU5GL01BTklGRVNULk1G803My0xLLS
+7RDUstKs7Mz7NSMNQz4OVyLkpNLElN0XWqBAlY6BnEG5obKmj4FyUm56QqOOcXFeQXJZYA1WvycvFyA
+QBQSwcIFGFrLUQAAABFAAAAUEsDBAoAAAgAAK2k6UwAAAAAAAAAAAAAAAAEAAAAY29tL1BLAwQKAAAI
+AACtpOlMAAAAAAAAAAAAAAAADAAAAGNvbS94YW1hcmluL1BLAwQKAAAIAACwpOlMAAAAAAAAAAAAAAA
+AEQAAAGNvbS94YW1hcmluL3Rlc3QvUEsDBBQACAgIAJmk6UwAAAAAAAAAAAAAAAAuAAAAY29tL3hhbW
+FyaW4vdGVzdC9EZWZhdWx0SW50ZXJmYWNlTWV0aG9kcy5jbGFzc3WOvU7DMBSFjxsnKeWnXUE8QLrgh
+ScAhBSJnwHE7qQ3JVUSC8dGFc/EwsrAA/BQiOuqLKnw8Pn4+LuWv38+vwCcY5biKMVUIKqMYWbzXEBe
+mgUJTG/qju58W5B91EXDTbIkd6HtX3jj0G+DzPL5E28v3q8FJg/G25Ku6zB1ekWV9o3LO0e20iXdkns
+2i/5spV+1QFaaVq11q23dKUe9U//4ArMwoRrdLdV9saLSJQICI4QVc4ogmTGfThBugFH0zuR/MpNNE7
+x015NDL3C868VDL2XuYbL1joMTjI+BNpYC+/xcaA820uEvUEsHCIw1aijpAAAAhQEAAFBLAwQUAAgIC
+ACYpOlMAAAAAAAAAAAAAAAAHAAAAERlZmF1bHRJbnRlcmZhY2VNZXRob2RzLmphdmF1zLEOwiAQBuCd
+p7hRl0Zd2YyLgw9xwlGJFCocTWPTdxdSHarxxv///utR3bElUKFrRuwwWt8wJZZC9PnqrALrmaJBRXA
+ig9nx+RNciG9BJzEJKKeXtnowIcBmCxNE4hw97CTMP6glPmJcuf1f91y5w7cbgtWQ3rCOBnSZymJhNX
+nkPJYnUsziBVBLBwgzfz2miQAAAPUAAABQSwECFAAUAAgICADVpOlMAAAAAAIAAAAAAAAACQAEAAAAA
+AAAAAAAAAAAAAAATUVUQS1JTkYv/soAAFBLAQIUABQACAgIANWk6UwUYWstRAAAAEUAAAAUAAAAAAAA
+AAAAAAAAAD0AAABNRVRBLUlORi9NQU5JRkVTVC5NRlBLAQIKAAoAAAgAAK2k6UwAAAAAAAAAAAAAAAA
+EAAAAAAAAAAAAAAAAAMMAAABjb20vUEsBAgoACgAACAAAraTpTAAAAAAAAAAAAAAAAAwAAAAAAAAAAA
+AAAAAA5QAAAGNvbS94YW1hcmluL1BLAQIKAAoAAAgAALCk6UwAAAAAAAAAAAAAAAARAAAAAAAAAAAAA
+AAAAA8BAABjb20veGFtYXJpbi90ZXN0L1BLAQIUABQACAgIAJmk6UyMNWoo6QAAAIUBAAAuAAAAAAAA
+AAAAAAAAAD4BAABjb20veGFtYXJpbi90ZXN0L0RlZmF1bHRJbnRlcmZhY2VNZXRob2RzLmNsYXNzUEs
+BAhQAFAAICAgAmKTpTDN/PaaJAAAA9QAAABwAAAAAAAAAAAAAAAAAgwIAAERlZmF1bHRJbnRlcmZhY2
+VNZXRob2RzLmphdmFQSwUGAAAAAAcABwDOAQAAVgMAAAAA
+";
+ proj.Jars.Add (new AndroidItem.EmbeddedJar ("dim.jar") {
+ BinaryContent = () => Convert.FromBase64String (classesJarBase64)
+ });
+ proj.AndroidClassParser = classParser;
+ proj.SetProperty ("CscToolPath", "$(MSBuildThisFileDirectory)\\..\\packages\\xamarin.android.csc.dim.0.1.2\\tools");
+ proj.SetProperty ("AndroidEnableDefaultInterfaceMethods", "True");
+ proj.SetProperty ("LangVersion", "latest");
+ using (var b = CreateDllBuilder (Path.Combine ("temp", TestName), false, false)) {
+ proj.NuGetRestore (b.ProjectDirectory);
+ Assert.IsTrue (b.Build (proj), "Build should have succeeded.");
+ string asmpath = Path.GetFullPath (Path.Combine (Path.GetDirectoryName (new Uri (GetType ().Assembly.CodeBase).LocalPath), b.ProjectDirectory, b.Output.OutputPath, (proj.AssemblyName ?? proj.ProjectName) + ".dll"));
+ Assert.IsTrue (File.Exists (asmpath), "assembly does not exist");
+ var cs = b.Output.GetIntermediaryAsText (Path.Combine ("generated", "src", "Com.Xamarin.Test.IDefaultInterfaceMethods.cs"));
+ Assert.IsTrue (cs.Contains ("int Quux ();"), "Quux not generated.");
+ Assert.IsTrue (cs.Contains ("virtual unsafe int Foo ()"), "Foo not generated.");
+ Assert.IsTrue (cs.Contains ("virtual unsafe int Bar {"), "Bar not generated.");
+ Assert.IsTrue (cs.Contains ("set {"), "(Baz) setter not generated.");
+ }
+ }
}
}
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets
index 2fdb17639ba..efb301d68ac 100755
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets
@@ -489,6 +489,7 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved.
ToolPath="$(MonoAndroidToolsDirectory)"
ToolExe="$(BindingsGeneratorToolExe)"
UseShortFileNames="$(UseShortGeneratorFileNames)"
+ EnableDefaultInterfaceMethods="$(AndroidEnableDefaultInterfaceMethods)"
/>
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
index 9cbefc43d0f..f75a790e530 100755
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets
@@ -298,7 +298,7 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved.
<_PackagedResources>$(IntermediateOutputPath)android\bin\packaged_resources
- <_Android32bitArchitectures>armeabi-v7a;armeabi;x86;mips
+ <_Android32bitArchitectures>armeabi-v7a;x86;mips
<_Android64bitArchitectures>arm64-v8a;x86_64;mips64
<_AndroidSequencePointsMode Condition=" '$(MonoSymbolArchive)' == 'True' And '$(AndroidUseDebugRuntime)' == 'False' And '$(AotAssemblies)' == 'True' And '$(DebugSymbols)' == 'True' And ('$(DebugType)' == 'PdbOnly' Or '$(DebugType)' == 'Portable')">Offline
diff --git a/src/sqlite-xamarin/src/main/jni/Application.mk b/src/sqlite-xamarin/src/main/jni/Application.mk
index ceeb0b40ef5..5f9c9366a99 100644
--- a/src/sqlite-xamarin/src/main/jni/Application.mk
+++ b/src/sqlite-xamarin/src/main/jni/Application.mk
@@ -1 +1 @@
-APP_ABI := armeabi armeabi-v7a arm64-v8a x86 x86_64
+APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Additions/AboutAdditions.txt b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Additions/AboutAdditions.txt
new file mode 100644
index 00000000000..c511f1d4ee1
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Additions/AboutAdditions.txt
@@ -0,0 +1,48 @@
+Additions allow you to add arbitrary C# to the generated classes
+before they are compiled. This can be helpful for providing convenience
+methods or adding pure C# classes.
+
+== Adding Methods to Generated Classes ==
+
+Let's say the library being bound has a Rectangle class with a constructor
+that takes an x and y position, and a width and length size. It will look like
+this:
+
+public partial class Rectangle
+{
+ public Rectangle (int x, int y, int width, int height)
+ {
+ // JNI bindings
+ }
+}
+
+Imagine we want to add a constructor to this class that takes a Point and
+Size structure instead of 4 ints. We can add a new file called Rectangle.cs
+with a partial class containing our new method:
+
+public partial class Rectangle
+{
+ public Rectangle (Point location, Size size) :
+ this (location.X, location.Y, size.Width, size.Height)
+ {
+ }
+}
+
+At compile time, the additions class will be added to the generated class
+and the final assembly will a Rectangle class with both constructors.
+
+
+== Adding C# Classes ==
+
+Another thing that can be done is adding fully C# managed classes to the
+generated library. In the above example, let's assume that there isn't a
+Point class available in Java or our library. The one we create doesn't need
+to interact with Java, so we'll create it like a normal class in C#.
+
+By adding a Point.cs file with this class, it will end up in the binding library:
+
+public class Point
+{
+ public int X { get; set; }
+ public int Y { get; set; }
+}
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/AboutJars.txt b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/AboutJars.txt
new file mode 100644
index 00000000000..e833d78bc58
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/AboutJars.txt
@@ -0,0 +1,36 @@
+This directory is for Android .jars.
+
+There are 4 types of jars that are supported:
+
+== Input Jar and Embedded Jar ==
+
+This is the jar that bindings should be generated for.
+
+For example, if you were binding the Google Maps library, this would
+be Google's "maps.jar".
+
+The difference between EmbeddedJar and InputJar is, EmbeddedJar is to be
+embedded in the resulting dll as EmbeddedResource, while InputJar is not.
+There are couple of reasons you wouldn't like to embed the target jar
+in your dll (the ones that could be internally loaded by
+feature e.g. maps.jar, or you cannot embed jars that are under some
+proprietary license).
+
+Set the build action for these jars in the properties page to "InputJar".
+
+
+== Reference Jar and Embedded Reference Jar ==
+
+These are jars that are referenced by the input jar. C# bindings will
+not be created for these jars. These jars will be used to resolve
+types used by the input jar.
+
+NOTE: Do not add "android.jar" as a reference jar. It will be added automatically
+based on the Target Framework selected.
+
+Set the build action for these jars in the properties page to "ReferenceJar".
+
+"EmbeddedJar" works like "ReferenceJar", but like "EmbeddedJar", it is
+embedded in your dll. But at application build time, they are not included
+in the final apk, like ReferenceJar files.
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/DefaultInterfaceMethods.java b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/DefaultInterfaceMethods.java
new file mode 100644
index 00000000000..84a310f5c54
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/DefaultInterfaceMethods.java
@@ -0,0 +1,10 @@
+package com.xamarin.test;
+
+public interface DefaultInterfaceMethods
+{
+ default int foo () { return 0; }
+ default int getBar () { return 1; }
+ default int getBaz () { return 2; }
+ default void setBaz (int value) { }
+ default int toImplement () { throw new UnsupportedOperationException (); }
+}
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/ImplementedClass.java b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/ImplementedClass.java
new file mode 100644
index 00000000000..4feeb9c2a8a
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Jars/ImplementedClass.java
@@ -0,0 +1,6 @@
+package com.xamarin.test;
+
+public class ImplementedClass implements DefaultInterfaceMethods
+{
+ public int toImplement () { return -1; }
+}
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Properties/AssemblyInfo.cs b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000000..895af20109e
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using Android.App;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle ("Xamarin.Android.DefaultInterfaceMethods-Lib")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("${AuthorCopyright}")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion ("1.0.0")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumFields.xml b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumFields.xml
new file mode 100644
index 00000000000..b95f58ccd8c
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumFields.xml
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumMethods.xml b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumMethods.xml
new file mode 100644
index 00000000000..c65a473ca7a
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/EnumMethods.xml
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/Metadata.xml b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/Metadata.xml
new file mode 100644
index 00000000000..8f3bde759f9
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Transforms/Metadata.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Xamarin.Android.DefaultInterfaceMethods-Lib.csproj b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Xamarin.Android.DefaultInterfaceMethods-Lib.csproj
new file mode 100644
index 00000000000..78ff7a2845c
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/Xamarin.Android.DefaultInterfaceMethods-Lib.csproj
@@ -0,0 +1,67 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}
+ {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Xamarin.Android.DefaultInterfaceMethodsLib
+ Xamarin.Android.DefaultInterfaceMethods-Lib
+ v9.0
+ Resources
+ Assets
+ true
+ class-parse
+ True
+ Latest
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ None
+
+
+ true
+ pdbonly
+ true
+ bin\Release
+ prompt
+ 4
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/packages.config b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/packages.config
new file mode 100644
index 00000000000..ef211d7c05d
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Lib/packages.config
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Assets/AboutAssets.txt b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Assets/AboutAssets.txt
new file mode 100644
index 00000000000..a9b0638eb1b
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Assets/AboutAssets.txt
@@ -0,0 +1,19 @@
+Any raw assets you want to be deployed with your application can be placed in
+this directory (and child directories) and given a Build Action of "AndroidAsset".
+
+These files will be deployed with your package and will be accessible using Android's
+AssetManager, like this:
+
+public class ReadAsset : Activity
+{
+ protected override void OnCreate (Bundle bundle)
+ {
+ base.OnCreate (bundle);
+
+ InputStream input = Assets.Open ("my_asset.txt");
+ }
+}
+
+Additionally, some Android functions will automatically load asset files:
+
+Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf");
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/MainActivity.cs b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/MainActivity.cs
new file mode 100644
index 00000000000..1e1ec957d6c
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/MainActivity.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Reflection;
+
+using Android.App;
+using Android.OS;
+using Android.Runtime;
+using Com.Xamarin.Test;
+using Java.Interop;
+using Xamarin.Android.NUnitLite;
+
+namespace Xamarin.Android.DefaultInterfaceMethodsTests
+{
+ [Activity (Label = "Xamarin.Android.DefaultInterfaceMethods-Tests", MainLauncher = true)]
+ public class MainActivity : TestSuiteActivity
+ {
+ protected override void OnCreate (Bundle bundle)
+ {
+ // tests can be inside the main assembly
+ AddTest (Assembly.GetExecutingAssembly ());
+ // or in any reference assemblies
+ // AddTest (typeof (Your.Library.TestClass).Assembly);
+
+ // Once you called base.OnCreate(), you cannot add more assemblies.
+ base.OnCreate (bundle);
+ }
+ }
+}
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AndroidManifest.xml b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AndroidManifest.xml
new file mode 100644
index 00000000000..be0ab0ee935
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AndroidManifest.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AssemblyInfo.cs b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000000..a5ecc52af40
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1,27 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using Android.App;
+
+// Information about this assembly is defined by the following attributes.
+// Change them to the values specific to your project.
+
+[assembly: AssemblyTitle ("Xamarin.Android.DefaultInterfaceMethods-Tests")]
+[assembly: AssemblyDescription ("")]
+[assembly: AssemblyConfiguration ("")]
+[assembly: AssemblyCompany ("")]
+[assembly: AssemblyProduct ("")]
+[assembly: AssemblyCopyright ("${AuthorCopyright}")]
+[assembly: AssemblyTrademark ("")]
+[assembly: AssemblyCulture ("")]
+
+// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
+// The form "{Major}.{Minor}.*" will automatically update the build and revision,
+// and "{Major}.{Minor}.{Build}.*" will update just the revision.
+
+[assembly: AssemblyVersion ("1.0.0")]
+
+// The following attributes are used to specify the signing key for the assembly,
+// if desired. See the Mono documentation for more information about signing.
+
+//[assembly: AssemblyDelaySign(false)]
+//[assembly: AssemblyKeyFile("")]
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/AboutResources.txt b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/AboutResources.txt
new file mode 100644
index 00000000000..10f52d46021
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/AboutResources.txt
@@ -0,0 +1,44 @@
+Images, layout descriptions, binary blobs and string dictionaries can be included
+in your application as resource files. Various Android APIs are designed to
+operate on the resource IDs instead of dealing with images, strings or binary blobs
+directly.
+
+For example, a sample Android app that contains a user interface layout (main.axml),
+an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png)
+would keep its resources in the "Resources" directory of the application:
+
+Resources/
+ drawable/
+ icon.png
+
+ layout/
+ main.axml
+
+ values/
+ strings.xml
+
+In order to get the build system to recognize Android resources, set the build action to
+"AndroidResource". The native Android APIs do not operate directly with filenames, but
+instead operate on resource IDs. When you compile an Android application that uses resources,
+the build system will package the resources for distribution and generate a class called "R"
+(this is an Android convention) that contains the tokens for each one of the resources
+included. For example, for the above Resources layout, this is what the R class would expose:
+
+public class R {
+ public class drawable {
+ public const int icon = 0x123;
+ }
+
+ public class layout {
+ public const int main = 0x456;
+ }
+
+ public class strings {
+ public const int first_string = 0xabc;
+ public const int second_string = 0xbcd;
+ }
+}
+
+You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main
+to reference the layout/main.axml file, or R.strings.first_string to reference the first
+string in the dictionary file values/strings.xml.
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-hdpi/Icon.png b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-hdpi/Icon.png
new file mode 100644
index 00000000000..f4c804644c5
Binary files /dev/null and b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-hdpi/Icon.png differ
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-mdpi/Icon.png b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-mdpi/Icon.png
new file mode 100644
index 00000000000..ef1e1ee7dc3
Binary files /dev/null and b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-mdpi/Icon.png differ
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xhdpi/Icon.png b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xhdpi/Icon.png
new file mode 100644
index 00000000000..b7e2e57aa90
Binary files /dev/null and b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xhdpi/Icon.png differ
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxhdpi/Icon.png b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxhdpi/Icon.png
new file mode 100644
index 00000000000..8d20a38d178
Binary files /dev/null and b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxhdpi/Icon.png differ
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxxhdpi/Icon.png b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxxhdpi/Icon.png
new file mode 100644
index 00000000000..6d9919c41a3
Binary files /dev/null and b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Resources/mipmap-xxxhdpi/Icon.png differ
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/TestsSample.cs b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/TestsSample.cs
new file mode 100644
index 00000000000..84f8094ddf5
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/TestsSample.cs
@@ -0,0 +1,22 @@
+using System;
+using Com.Xamarin.Test;
+using NUnit.Framework;
+
+namespace Xamarin.Android.DefaultInterfaceMethodsTests
+{
+ [TestFixture]
+ public class DimTest
+ {
+ [Test]
+ public void TestCSharp8DefaultInterfaceMethods ()
+ {
+ // C# 8 syntax is awkward.
+ // If you use "var" then it is declared as the class, and fails to resolve.
+ // Those default interface methods are only callable via interface!
+ IDefaultInterfaceMethods c = new ImplementedClass ();
+ Assert.AreEqual (0, c.Foo (), "#1");
+ Assert.AreEqual (1, c.Bar, "#2");
+ Assert.AreEqual (-1, c.ToImplement (), "#3");
+ }
+ }
+}
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Xamarin.Android.DefaultInterfaceMethods-Tests.csproj b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Xamarin.Android.DefaultInterfaceMethods-Tests.csproj
new file mode 100644
index 00000000000..6859e10fda4
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/Xamarin.Android.DefaultInterfaceMethods-Tests.csproj
@@ -0,0 +1,81 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {80E5171A-56DF-48AC-8AD9-65028319C1B8}
+ {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Library
+ Xamarin.Android.DefaultInterfaceMethodsTests
+ Xamarin.Android.DefaultInterfaceMethods-Tests
+ v9.0
+ True
+ Resources\Resource.designer.cs
+ Resource
+ Resources
+ Assets
+ true
+ Properties\AndroidManifest.xml
+ armeabi-v7a;x86;arm64-v8a;x86_64
+ Latest
+
+
+ true
+ full
+ false
+ bin\Debug
+ DEBUG;
+ prompt
+ 4
+ None
+ false
+
+ true
+
+
+ true
+ pdbonly
+ true
+ bin\Release
+ prompt
+ 4
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {E2F0F78B-6088-4282-A49C-122EE28611FF}
+ Xamarin.Android.DefaultInterfaceMethods-Lib
+
+
+
+
+
diff --git a/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/packages.config b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/packages.config
new file mode 100644
index 00000000000..7b2eb74810c
--- /dev/null
+++ b/tests/CodeGen-Binding/Xamarin.Android.DefaultInterfaceMethods-Tests/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/Xamarin.Android.JcwGen-Tests.csproj b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/Xamarin.Android.JcwGen-Tests.csproj
index 83477f0c8b5..4d77f7fa18b 100644
--- a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/Xamarin.Android.JcwGen-Tests.csproj
+++ b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/Xamarin.Android.JcwGen-Tests.csproj
@@ -82,7 +82,6 @@
-
diff --git a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/jni/Application.mk b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/jni/Application.mk
index 49ec634fc40..729645b114c 100644
--- a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/jni/Application.mk
+++ b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/jni/Application.mk
@@ -1,2 +1,2 @@
# Build both ARMv5TE and ARMv7-A machine code.
-APP_ABI := arm64-v8a armeabi armeabi-v7a x86 x86_64
+APP_ABI := arm64-v8a armeabi-v7a x86 x86_64
diff --git a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Properties/AssemblyInfo.cs b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Properties/AssemblyInfo.cs
index 636880ce93f..9dd7ca0da3e 100644
--- a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Properties/AssemblyInfo.cs
+++ b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Properties/AssemblyInfo.cs
@@ -29,8 +29,6 @@
// native library path should contain abi
[assembly: Android.NativeLibraryReference ("arm64-v8a/libsimple.so",
SourceUrl="file:///NativeLib.zip", Version="native-lib-1")]
-[assembly: Android.NativeLibraryReference ("armeabi/libsimple.so",
- SourceUrl="file:///NativeLib.zip", Version="native-lib-1")]
[assembly: Android.NativeLibraryReference ("armeabi-v7a/libsimple.so",
SourceUrl="file:///NativeLib.zip", Version="native-lib-1")]
[assembly: Android.NativeLibraryReference ("x86/libsimple.so",
@@ -42,9 +40,6 @@
[assembly: Android.NativeLibraryReference ("arm64-v8a/libsimple2.so",
EmbeddedArchive="aar-test/EmbeddedNativeLib.zip",
SourceUrl="file:///NativeLib2.zip", Version="native-lib-2")]
-[assembly: Android.NativeLibraryReference ("armeabi/libsimple2.so",
- EmbeddedArchive="aar-test/EmbeddedNativeLib.zip",
- SourceUrl="file:///NativeLib2.zip", Version="native-lib-2")]
[assembly: Android.NativeLibraryReference ("armeabi-v7a/libsimple2.so",
EmbeddedArchive="aar-test/EmbeddedNativeLib.zip",
SourceUrl="file:///NativeLib2.zip", Version="native-lib-2")]
diff --git a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.csproj b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.csproj
index 65c76924dcb..6be2cb68837 100644
--- a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.csproj
+++ b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.csproj
@@ -72,7 +72,6 @@
-
diff --git a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets
index a0b3af504f1..41684fc8429 100644
--- a/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets
+++ b/tests/CodeGen-Binding/Xamarin.Android.LibraryProjectZip-LibBinding/Xamarin.Android.LibraryProjectZip-LibBinding.targets
@@ -11,7 +11,7 @@
@@ -30,7 +30,7 @@
-
diff --git a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.csproj b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.csproj
index 59df526472e..8a3a9fb2d90 100644
--- a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.csproj
+++ b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/Xamarin.Android.BindingResolveImportLib2.csproj
@@ -80,7 +80,6 @@
-
diff --git a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Application.mk b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Application.mk
index 49ec634fc40..729645b114c 100644
--- a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Application.mk
+++ b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib2/jni/Application.mk
@@ -1,2 +1,2 @@
# Build both ARMv5TE and ARMv7-A machine code.
-APP_ABI := arm64-v8a armeabi armeabi-v7a x86 x86_64
+APP_ABI := arm64-v8a armeabi-v7a x86 x86_64
diff --git a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.csproj b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.csproj
index b88687d1fde..81344136971 100644
--- a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.csproj
+++ b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/Xamarin.Android.BindingResolveImportLib4.csproj
@@ -78,7 +78,6 @@
-
diff --git a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Application.mk b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Application.mk
index 49ec634fc40..729645b114c 100644
--- a/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Application.mk
+++ b/tests/ResolveImports/Xamarin.Android.BindingResolveImportLib4/jni/Application.mk
@@ -1,2 +1,2 @@
# Build both ARMv5TE and ARMv7-A machine code.
-APP_ABI := arm64-v8a armeabi armeabi-v7a x86 x86_64
+APP_ABI := arm64-v8a armeabi-v7a x86 x86_64