diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln
index 13b92eefa7f..cccead00b6a 100644
--- a/Xamarin.Android.sln
+++ b/Xamarin.Android.sln
@@ -41,6 +41,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{864062D3
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jcw-gen", "external\Java.Interop\tools\jcw-gen\jcw-gen.csproj", "{52C7D9B6-E8C8-47D0-9471-652D278D7D77}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jnimarshalmethod-gen", "external\Java.Interop\tools\jnimarshalmethod-gen\Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj", "{D1295A8F-4F42-461D-A046-564476C10002}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop.Tools.JavaCallableWrappers", "external\Java.Interop\src\Java.Interop.Tools.JavaCallableWrappers\Java.Interop.Tools.JavaCallableWrappers.csproj", "{D18FCF91-8876-48A0-A693-2DC1E7D3D80A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.Tools.ApiXmlAdjuster", "external\Java.Interop\src\Xamarin.Android.Tools.ApiXmlAdjuster\Xamarin.Android.Tools.ApiXmlAdjuster.csproj", "{1268EADF-8344-431C-81F6-FCB7CBC99F49}"
@@ -186,6 +188,10 @@ Global
{52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Debug|AnyCPU.Build.0 = Debug|Any CPU
{52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Release|AnyCPU.ActiveCfg = Release|Any CPU
{52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Release|AnyCPU.Build.0 = Release|Any CPU
+ {D1295A8F-4F42-461D-A046-564476C10002}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU
+ {D1295A8F-4F42-461D-A046-564476C10002}.Debug|AnyCPU.Build.0 = Debug|Any CPU
+ {D1295A8F-4F42-461D-A046-564476C10002}.Release|AnyCPU.ActiveCfg = Release|Any CPU
+ {D1295A8F-4F42-461D-A046-564476C10002}.Release|AnyCPU.Build.0 = Release|Any CPU
{D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU
{D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Debug|AnyCPU.Build.0 = Debug|Any CPU
{D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Release|AnyCPU.ActiveCfg = Release|Any CPU
@@ -367,6 +373,7 @@ Global
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7} = {04E3E11E-B47D-4599-8AFC-50515A95E715}
{B17475BC-45A2-47A3-B8FC-62F3A0959EE0} = {04E3E11E-B47D-4599-8AFC-50515A95E715}
{52C7D9B6-E8C8-47D0-9471-652D278D7D77} = {864062D3-A415-4A6F-9324-5820237BA058}
+ {D1295A8F-4F42-461D-A046-564476C10002} = {864062D3-A415-4A6F-9324-5820237BA058}
{D18FCF91-8876-48A0-A693-2DC1E7D3D80A} = {864062D3-A415-4A6F-9324-5820237BA058}
{1268EADF-8344-431C-81F6-FCB7CBC99F49} = {864062D3-A415-4A6F-9324-5820237BA058}
{07BC4495-1267-4B78-9EA6-B76FEEA2A64A} = {864062D3-A415-4A6F-9324-5820237BA058}
diff --git a/build-tools/scripts/java-interop.dllmap b/build-tools/scripts/java-interop.dllmap
new file mode 100644
index 00000000000..989096481a4
--- /dev/null
+++ b/build-tools/scripts/java-interop.dllmap
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/src/monodroid/monodroid.csproj b/src/monodroid/monodroid.csproj
index 8f5d5e2038b..8c7bdf0f2d3 100644
--- a/src/monodroid/monodroid.csproj
+++ b/src/monodroid/monodroid.csproj
@@ -32,6 +32,20 @@
dependencies
False
+
+
+ {D1295A8F-4F42-461D-A046-564476C10002}
+ jnimarshalmethod-gen
+ False
+
{C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2}
mono-runtimes
diff --git a/src/monodroid/monodroid.targets b/src/monodroid/monodroid.targets
index 53b9ef0ac3d..6c7660505f5 100644
--- a/src/monodroid/monodroid.targets
+++ b/src/monodroid/monodroid.targets
@@ -5,6 +5,7 @@
+
<_Conf>$(Configuration.ToLowerInvariant())
@@ -116,7 +117,7 @@
@@ -143,20 +144,27 @@
Command="%(_HostRuntime.Strip) %(_HostRuntime.StripFlags) "$(OutputPath)%(_HostRuntime.OutputDirectory)\libmono-android.release.%(_HostRuntime.NativeLibraryExtension)""
/>
-
+
+
+
+
-
+ />
+
+ <_DllMaps>@(_JavaInteropDllMapContent->'%(Identity)', '%0a ')
+
+
+