2012-05-30 7 views
12

Es scheint, dass ab Android 2.2 gibt für das Senden von Absturzberichten eine neue Funktion ist, wie in den Links erwähnt:Android - Wie versende ich Absturzberichte?

Wie verwende ich diese Funktion? Ist es automatisch für jede vom Markt heruntergeladene Anwendung (auch bekannt als Google Play Store)? Wo finde ich weitere Informationen zu dieser Funktion?

Auch ist es möglich, anzupassen, was gesendet wird, vielleicht mithilfe von DefaultExceptionHandler, und stellen Sie unsere eigene Beschreibung des Absturzes?

HINWEIS: ich weiß, dass es viele Tools für das Senden von Crash-Berichte (wie ACRA) sind, aber ich möchte erst prüfen, ob es möglich ist, zu verwenden, was bereits ist gegeben.

BEARBEITEN: Ich habe erfolgreich die Ausnahme geändert, die weitergereicht wird, in der Hoffnung, dass dies auch den Bericht ändert, der an die Entwickler-Website von Google gesendet wird.

Hier ist ein Beispielcode, der für diese relevant ist:

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

Sie erhalten automatisch Fehlermeldungen in Ihrer Marktkonsole. –

Antwort

5

Was Sie klingt wie die Build-in-Funktion beschrieben haben, und soweit ich weiß, Sie können dies nicht anpassen. Die Daten werden an das Google Play-Konto gesendet, von dem die App hochgeladen wurde. Ich habe Anpassungen von Sense oder Custom Roms gesehen. Die einzige Möglichkeit, Ihre eigenen Logs zu erhalten, ist die von Ihnen erwähnte DefaultErrorHandler. Als eine gute Übung würde ich überprüfen, ob Sie den Fehler selbst finden können (vielleicht melden Sie sich irgendwo). Wenn nicht, würde ich diesen Fehler wiederholen, um dem Benutzer eine Chance zu geben, Ihnen Tipps zu geben, was er getan hat

+0

Ja, ich vermutete, dass es eingebaut ist und dass es keine API gibt. Ist es jedoch möglich, den DefaultExceptionHandler zu verwenden, um dem Bericht weitere Informationen hinzuzufügen? Wenn das so ist, wie ? Ich weiß, dass es mir gelungen ist, die Ausnahmen zu erfassen, aber was sollte ich tun, um weitere Informationen an die integrierte Funktion des Absturzberichts weiterzuleiten? –

+0

Sie können keine zusätzlichen Informationen innerhalb des integrierten crashReports übergeben. Sie können den DefaultExHandler NUR verwenden, um Ihre EIGENEN Berichte zu senden, in einer Weise, die Sie mögen –

+2

Sie verstanden mich nicht (wegen mir, ich gebe zu). Ich möchte zusätzliche Daten hinzufügen. Angenommen, ich erhalte eine Nullzeiger-Ausnahme und möchte Protokolle einschließen, die vor dem Auftreten dieser Ausnahme gedruckt wurden. Kann ich diese Informationen in irgendeiner Weise hinzufügen, so dass ich sie auf der Entwickler-Website zusammen mit dem Rest der gesammelten Informationen sehen kann? Vielleicht kann ich meine eigene benutzerdefinierte Ausnahme senden, die diese Daten enthält? –