2012-05-30 121 views
12

看來,由於Android 2.2的,有用於發送崩潰報告的一個新功能,如鏈接中提到:Android - 如何發送崩潰報告?

如何使用此功能?從市場上下載的每個應用程序(又名Google Play商店)是否自動? 我在哪裏可以找到關於此功能的更多信息?

另外,是否有可能通過使用DefaultExceptionHandler來定製正在發送的內容,並將我們自己的崩潰描述?

注意:我知道有很多發送崩潰報告的工具(如ACRA),但我希望首先檢查是否可以使用已經給出的內容。

編輯:我成功地修改了進一步傳遞的異常,希望這也會改變發送給Google的開發人員網站的報告。

下面是一個示例代碼,是有關這個:你現在已經在功能描述聽起來像身材,而據我所知,你不能自定義此

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

你會在市場控制檯中自動收到錯誤報告。 –

回答

5

。數據將發送到上傳應用的googlePlay開發者賬戶。我看到了Sense或Custom Roms的定製。獲得自己的日誌的唯一方法是使用你提到的DefaultErrorHandler。作爲一個很好的做法,我會檢查一下,如果你可以自己發現錯誤(也許記錄在某處)。如果不是,我會重新拋出這個錯誤,讓用戶有機會給你提示,他做了什麼

+0

是的,我懷疑它是內置的,並且沒有API。但是,是否可以使用DefaultExceptionHandler爲我的報告添加更多信息?如果是這樣,怎麼樣?我知道我已經成功地捕捉異常,但是爲了將更多信息傳遞給崩潰報告的內置功能,我該怎麼做? –

+0

您無法在構建的crashReport中傳遞任何其他信息。你可以使用DefaultExHandler來發送你自己的報告,你喜歡 –

+2

你不瞭解我(因爲我,我承認)。我想把額外的數據。例如,假設我得到一個空指針異常,並且我想包含在發生此異常之前打印的日誌。我可以以某種方式添加此信息,以便在開發者網站上我可以將其與收集的其他信息一起看到。也許我可以發送我自己的自定義異常,其中包括這些數據? –