diff --git a/tools/generator/ClassGen.cs b/tools/generator/ClassGen.cs index d96c0a491..524feca17 100644 --- a/tools/generator/ClassGen.cs +++ b/tools/generator/ClassGen.cs @@ -333,7 +333,7 @@ void GenMethods (StreamWriter sw, string indent, CodeGenerationOptions opt) var overridens = defaultMethods.Where (m => overrides.Where (_ => _.Name == m.Name && _.JniSignature == m.JniSignature) .Any (mm => mm.DeclaringType.GetAllDerivedInterfaces ().Contains (m.DeclaringType))); - foreach (Method m in Methods.Concat (defaultMethods.Except (overridens))) { + foreach (Method m in Methods.Concat (defaultMethods.Except (overridens)).Where (m => m.DeclaringType.IsGeneratable)) { bool virt = m.IsVirtual; m.IsVirtual = !IsFinal && virt; if (m.IsAbstract && !m.IsInterfaceDefaultMethodOverride && !m.IsInterfaceDefaultMethod) diff --git a/tools/generator/CodeGenerator.cs b/tools/generator/CodeGenerator.cs index 08514e560..d0397d2ea 100644 --- a/tools/generator/CodeGenerator.cs +++ b/tools/generator/CodeGenerator.cs @@ -323,7 +323,8 @@ public static void Run (CodeGeneratorOptions options) new NamespaceMapping (gens).Generate (opt, gen_info); foreach (IGeneratable gen in gens) - gen.Generate (opt, gen_info); + if (gen.IsGeneratable) + gen.Generate (opt, gen_info); ClassGen.GenerateTypeRegistrations (opt, gen_info); ClassGen.GenerateEnumList (gen_info);