diff --git a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs index 93e35f90b..904978193 100644 --- a/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs +++ b/src/Java.Interop.Tools.JavaCallableWrappers/Java.Interop.Tools.JavaCallableWrappers/JavaCallableWrapperGenerator.cs @@ -543,8 +543,13 @@ void GenerateHeader (StreamWriter sw) void GenerateBody (StreamWriter sw) { - foreach (Signature ctor in ctors) + foreach (Signature ctor in ctors) { + if (string.IsNullOrEmpty (ctor.Params) && JniType.IsApplication (type)) + continue; GenerateConstructor (ctor, sw); + } + + GenerateApplicationConstructor (sw); foreach (JavaFieldInfo field in exported_fields) GenerateExportedField (field, sw); @@ -755,6 +760,19 @@ void GenerateConstructor (Signature ctor, StreamWriter sw) sw.WriteLine ("\t}"); } + void GenerateApplicationConstructor (StreamWriter sw) + { + if (!JniType.IsApplication (type)) { + return; + } + + sw.WriteLine (); + sw.WriteLine ("\tpublic {0} ()", name); + sw.WriteLine ("\t{"); + sw.WriteLine ("\t\tmono.MonoPackageManager.setContext (this);"); + sw.WriteLine ("\t}"); + } + void GenerateExportedField (JavaFieldInfo field, StreamWriter sw) { sw.WriteLine ();