2012-09-11 12 views
5

Estoy tratando de instalar el sistema de informe de fallas de ACRA en mi proyecto de Android. Ahora, mi proyecto ya está ampliando una clase, la clase de Actividad. ¿Cómo puedo implementar el proyecto Acra entonces?Acra: instalar, extender la aplicación - Actividad?

Como afirman en forma normal, lo que tiene que hacer una clase F. E. MyApplication y extenderlo con la aplicación. Como ya estoy ampliando la clase de actividad, no estoy seguro de qué hacer ... Dicen: si su aplicación ya contiene una subclase de aplicación, agregue ACRA a esta clase; Sin embargo, no sé cómo debo hacer esto ..

Gracias!

http://code.google.com/p/acra/wiki/BasicSetup

Respuesta

2

Basta con crear una clase MyApplication que se extiende desde Application, hacen lo que dicen de anulando onCreate() y luego ir a su AndroidManifest.

Debe tener un <application> con valores como android:label o android:theme. Simplemente agregue android:name=".MyApplication" allí y ya está listo.

Tenga en cuenta que si su paquete es com.example.test, MyApplication tiene que estar allí. Si desea colocar MyApplication en cualquier otro lugar, debe señalar dónde está.

Por ejemplo, si el paquete es com.example.test y MyApplication está en com.example.test.application, debe agregar android:name=".application.MyApplication a su manifiesto. Le recomiendo encarecidamente que utilice un paquete solo para su Aplicación, ya que atomiza su proyecto y lo hace mucho más manejable y realizable.

+0

Bueno, yo acabo de hacer eso y lo primero Lo noto es que mi aplicación ya no funciona ...: s 09-11 11: 00: 36.682: W/dalvikvm (6090): threadid = 1: el hilo sale con la excepción no detectada (grupo = 0x4001d560) 09-11 11: 00: 36.682: E/ACRA (6090): ACRA detectó una excepción RuntimeException para com.droid. Informe de construcción. –

+0

¿Hay un "Caused by: ...." con otra excepción anidada en stacktrace? Esto debería darte una idea de lo que salió mal. –

-1

Una subclase de aplicación se requiere para mantener un estado de aplicación a nivel mundial, no es necesario para todas las aplicaciones a la sub clase de ella. Si su aplicación todavía no tiene una, puede crearla.

Ejemplo:

/* do ACRA imports */ 
@ReportsCrashes(formKey = "x-x-x-x-x-x") 
public class YourApplication extends Application{ 

public void onCreate(){ 
    ACRA.init(this); 
    super.onCreate(); 
} 
} 

también se debe declarar en el archivo de manifiesto como se indica en el tutorial.

1

He publicado un tutorial detallado. Esto le permite configurar ACRA para el proyecto existente y configurarlo para enviar un correo electrónico a su dirección de correo electrónico. Link

0

aplicación se utiliza debido a la manifiesta. En el manifiesto, es sólo para añadir esto a la etiqueta de aplicación (con todas las actividades en el interior):

android:name=".MyApplication" 

Ex:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:name=".MyApplication" 
    android:theme="@style/AppTheme" > 

Debido a la facilidad de inicialización (como se inicializa automáticamente por el Sistema Android en el lanzamiento) será nunca informe. Se puede bloquear al instante en el inicio y aún así informar. Entonces es una configuración realmente inteligente.

Mi clase de aplicación es el siguiente:

@ReportsCrashes(

    formUri = "https://backend.com", 
    customReportContent = { /* */ReportField.APP_VERSION_NAME, ReportField.PACKAGE_NAME,ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,ReportField.LOGCAT }, 
    mode = ReportingInteractionMode.TOAST, 
    resToastText = R.string.crash_toast_text 

) 

public class ACRAHandler extends Application { 


    @Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 


     final ACRAConfiguration config = new ConfigurationBuilder(this) 

       .build(); 
     // Initialise ACRA 
     ACRA.init(this, config); 

    } 



} 

Si para una instancia está utilizando Firebase, puede utilizar los dos juntos en la misma clase que se extiende aplicación sin ningún problema.Lo intenté y funcionó, no hubo problemas con los informes de errores ni con Firebase.

Además, los nuevos enlaces para ACRA está ahora en Github: https://github.com/ACRA/acra/wiki/BasicSetup

que respondieron a esta porque fue hace tanto tiempo las respuestas vinieron y necesita una actualización

Cuestiones relacionadas