Пользовательский дочерний класс приложения в Mono для Android

Я пытаюсь создать дочерний класс "Android.App.Application", чтобы переопределить "OnCreate()", но я не могу заставить его работать. Здесь мой код:

namespace MonoAndroidAcra {
  [Application(Debuggable=true, 
               Label="insert label here",
               ManageSpaceActivity = typeof(MainActivity))]
  class AcraApp : Application {
    public override void OnCreate() {
      base.OnCreate();
    }
  }
}

MainActivity - это только пример активности по умолчанию.

Теперь, когда я отлаживаю проект, я получаю a System.NotSupportedException:

Невозможно активировать экземпляр типа MonoAndroidAcra.AcraApp из встроенного дескриптора 405191a0

Для этого исключения не существует стека вызовов.

Как это сделать правильно? Я не мог найти примеров для этого.

Я использую последнюю стабильную версию Mono для Android.

Ответы

Ответ 1

Вам нужно добавить этот конструктор в свой класс, чтобы он работал:

public AcraApp (IntPtr javaReference, JniHandleOwnership transfer)
    : base(javaReference, transfer)
{
}

Ответ 2

Это была "нечеткая абстракция", поясняемая членом команды Xamarin, которые были исправлены в последней версии Xamarin Android версии 4.12.2, в которой она не требуется больше добавлять этот отсутствующий конструктор. Android SDK 22.6 также необходим для правильной работы с этой версией Xamarin. Однако обновление SDK только не устранит эту проблему, это действительно связано с Xamarin.

Для тех, кто использует более старую версию, Greg solution все равно будет использоваться.