【问题标题】:Custom Application child class in Mono for AndroidMono for Android 中的自定义应用程序子类
【发布时间】:2012-03-29 15:18:35
【问题描述】:

我正在尝试创建一个“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 只是默认的示例活动。

现在,当我调试项目时,我得到一个System.NotSupportedException

无法从本机句柄 405191a0 激活 MonoAndroidAcra.AcraApp 类型的实例

没有可用于此异常的调用堆栈。

如何正确执行此操作?我找不到任何例子。

我正在使用适用于 Android 的最新稳定版 Mono。

【问题讨论】:

    标签: c# android xamarin.android


    【解决方案1】:

    您需要将此构造函数添加到您的类中才能使其工作:

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

    【讨论】:

      【解决方案2】:

      这是一个“泄漏抽象”explained by a Xamarin Team member,已在最新的 Xamarin Android 版本 4.12.2 中修复,不再需要添加此缺失的构造函数。还需要 Android SDK 22.6 才能在此 Xamarin 版本中正常运行。但是仅更新 SDK 并不能解决此问题,这确实与 Xamarin 相关。

      对于使用旧版本的任何人,仍应使用Greg's solution

      【讨论】:

      • 看来@GregShackles answer 是必需的,即使是 6.1.0.71。
      • @TN。很高兴知道感谢您指出这一点,我想知道这是否是刚刚出现的回归问题。我已经有大约 2 年没有使用 Xamarin 了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多