diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs b/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs index 69584ae7893..04286ff5d77 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/GenerateJavaStubs.cs @@ -100,10 +100,11 @@ public class GenerateJavaStubs : AndroidTask public override bool RunTask () { try { + bool useMarshalMethods = !Debug && EnableMarshalMethods; // We're going to do 3 steps here instead of separate tasks so // we can share the list of JLO TypeDefinitions between them - using (DirectoryAssemblyResolver res = MakeResolver ()) { - Run (res, useMarshalMethods: !Debug && EnableMarshalMethods); + using (DirectoryAssemblyResolver res = MakeResolver (useMarshalMethods)) { + Run (res, useMarshalMethods); } } catch (XamarinAndroidException e) { Log.LogCodedError (string.Format ("XA{0:0000}", e.Code), e.MessageWithoutCode); @@ -121,12 +122,13 @@ public override bool RunTask () return !Log.HasLoggedErrors; } - DirectoryAssemblyResolver MakeResolver () + DirectoryAssemblyResolver MakeResolver (bool useMarshalMethods) { - var readerParams = new ReaderParameters { - ReadWrite = true, - InMemory = true, - }; + var readerParams = new ReaderParameters(); + if (useMarshalMethods) { + readerParams.ReadWrite = true; + readerParams.InMemory = true; + } var res = new DirectoryAssemblyResolver (this.CreateTaskLogger (), loadDebugSymbols: true, loadReaderParameters: readerParams); foreach (var dir in FrameworkDirectories) {