2012-03-29 19 views
11

Estoy intentando crear una clase secundaria de "Aplicación.aplicación.android" para anular "OnCreate()", pero no puedo hacer que funcione. Aquí está mi código:Clase de aplicación personalizada para niños en Mono para Android

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

MainActivity es sólo la actividad ejemplo por defecto.

Ahora, cuando depurar el proyecto me siento un System.NotSupportedException:

No se puede activar instancia de tipo MonoAndroidAcra.AcraApp de mango nativa 405191a0

Sin pila de llamadas está disponible para esta excepción.

¿Cómo hago esto correctamente? No pude encontrar ningún ejemplo para esto.

Estoy usando la última versión estable de Mono para Android.

Respuesta

27

es necesario agregar este constructor a su clase con el fin de hacer que funcione:

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

Gracias un montón. Estaba buscando lo que estaba haciendo mal! –

1

Esta era una "abstracción con fugas", explained by a Xamarin Team member, que se han solucionado en la última versión de Android Xamarin 4.12.2 , en el que ya no es necesario agregar este constructor faltante. El Android SDK 22.6 también es necesario para funcionar correctamente con esta versión de Xamarin. Sin embargo, actualizar el SDK solo no solucionará este problema, esto está relacionado con Xamarin.

Para cualquier persona que use la versión anterior, Greg's solution todavía debe ser utilizado.

+0

Parece que se requiere [@GregShackles answer] (http://stackoverflow.com/a/9963637/121968) incluso para 6.1.0.71. –

+0

@TN. Es bueno saber gracias por señalar eso, me pregunto si es un problema de regresión que acaba de regresar. No he estado usando Xamarin durante aproximadamente 2 años. – ForceMagic

Cuestiones relacionadas