2012-03-29 85 views
11

我試圖創建一個子類「Android.App.Application」來覆蓋「OnCreate()」,但我無法讓它工作。這是我的代碼:Android的Mono中的自定義應用程序子類

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。

回答

27

您需要此構造,以便添加到您的類,使其工作:

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

謝謝你。正在尋找我做錯了什麼! – 2013-03-08 14:16:05

1

這是一個「漏抽象」,explained by a Xamarin Team member,已在最新的Android Xamarin版本4.12.2 ,其中不再需要添加這個缺少的構造函數。這個Xamarin版本也需要安裝Android SDK 22.6。不過,更新SDK只會解決這個問題,這實際上與Xamarin相關。

對於使用舊版本的用戶,仍應使用Greg's solution

+0

即使對於6.1.0.71,似乎也需要[@GregShackles答案](http://stackoverflow.com/a/9963637/121968)。 – 2016-08-18 14:14:58

+0

@TN。很高興知道,謝謝你指出,我不知道這是一個迴歸問題,剛剛回來。我現在沒有使用Xamarin大約2年。 – ForceMagic 2016-08-18 14:55:04

相關問題