2012-05-30 20 views
12

Parece que a partir de Android 2.2, hay una característica nueva para el envío de los informes de fallos, como se menciona en los enlaces:Android: ¿cómo enviar informes de fallos?

¿Cómo uso esta función? ¿Es automático para cada aplicación descargada del mercado (también conocida como Google Play Store)? ¿Dónde puedo encontrar más información sobre esta función?

Además, ¿es posible personalizar lo que se envía, quizás usando DefaultExceptionHandler, y poner nuestra propia descripción del bloqueo?

NOTA: sé que hay un montón de herramientas para el envío de informes de fallos (como ACRA), pero me gustaría que comprobar primero si es posible utilizar lo que ya se ha dado.

EDIT: He logrado modificar la excepción que se pasa más lejos, con la esperanza de que esto también cambie el informe que se envía al sitio web de desarrollador de Google.

Aquí hay un código de ejemplo que es relevante para esto:

private static class DefaultExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler 
... 
@Override 
public void uncaughtException(Thread t, Throwable e) 
{ 
    final StackTraceElement[] exceptionStackTrace = e.getStackTrace(); 
    Exception exception = new Exception("my new exception!", e); 
    final StackTraceElement[] newExceptionStackTrace = new StackTraceElement[exceptionStackTrace.length + 1]; 
    System.arraycopy(exceptionStackTrace, 0, newExceptionStackTrace, 1, exceptionStackTrace.length); 
    newExceptionStackTrace[0] = new StackTraceElement("TEST CLASS", "TEST METHOD", "TEST FILE", 0); 
    exception.setStackTrace(newExceptionStackTrace); 
_defaultUEH.uncaughtException(t, exception); //this will hopefully call the default handling of the exception for reporting 
} 
+0

Recibirá automáticamente informes de errores en su consola de Market. –

Respuesta

5

Lo que usted ha descrito sonidos como la estructura en función, y por lo que yo sé, no se puede personalizar esto. Los datos se enviarán a la cuenta dev de googlePlay que cargó la aplicación. He visto personalizaciones realizadas por Sense o Custom Roms. La única forma de obtener sus propios registros es usar el DefaultErrorHandler que mencionó. Como buena práctica, comprobaría, si puede captar el error usted mismo, (tal vez registrarlo en algún lugar). Si no, volvería a generar este error, para darle al usuario la oportunidad de darle pistas, lo que ha hecho

+0

sí, sospecho que está integrado y que no hay API. sin embargo, ¿es posible usar DefaultExceptionHandler para agregar más información propia al informe? si es así, cómo ? Sé que he tenido éxito capturando las excepciones, pero ¿qué debo hacer para pasar más información a la característica incorporada del informe de bloqueo? –

+0

no se puede pasar ninguna información adicional dentro del built-in crashReport. Puede usar el DefaultExHandler SÓLO para enviar sus PROPIOS informes, de una manera que le guste –

+2

no me entendió (por mi culpa, lo admito). Quiero poner datos adicionales. por ejemplo, supongamos que obtengo una excepción de puntero nulo y quiero incluir los registros que se imprimieron antes de que se produjera esta excepción. ¿Puedo agregar esta información de alguna manera, para que en el sitio web del desarrollador pueda verla junto con el resto de la información que se recopiló? tal vez puedo enviar mi propia excepción personalizada que incluye esta información? –

Cuestiones relacionadas