2014-02-28 123 views
0

有時我的應用程序在嘗試打開時崩潰。由於該應用程序尚未完全啓動,因此我沒有收到錯誤報告。我也無法將我的應用程序連接到模擬器,因爲此行爲不可重現。有時它只會崩潰一次。在其他時候,我可以嘗試按需要打開/重新打開它,並且它非常完美。在Android中啓動應用程序時出現隨機應用程序崩潰

我只使用網絡連接(沒有相機和其他東西)。我沒有任何可能導致應用程序崩潰的服務,我嘗試通過在後臺加載某些內容時停止應用程序來重現我的錯誤,但沒有成功。

您認爲可能是導致崩潰的原因是什麼?我怎樣才能得到一個日誌文件,堆棧跟蹤有用的解決這個問題?我根本無法複製它,所以當它發生時我從來沒有看到Logcat-Output。

這可能是一個片段初始化問題,但我看不到我的錯誤。這從來沒有發生過,這只是一個常見的錯誤。它可能每週只有一次/兩次崩潰 - 但它在某個時間點崩潰...

我上傳了我的項目github,但我不認爲這有助於某種程度。

我的主要問題是:什麼機會,我必須看看這些隨機崩潰背後的原因是什麼?

+1

我想這個問題是您的網絡連接。 –

+3

需要發佈「有時」的logcat – user2450263

+1

當你提出http請求並處理它時,請使用asyntask。在請求之前請檢查互聯網是否可用 –

回答

2

根您的手機並安裝CatLog。當它崩潰時,打開CatLog並保存日誌,以便日後查看。

或者,如果你想將其自動化試試這個:

創建一個用於保存堆棧跟蹤到一個文件中的異常處理程序。

public class UncaughtExceptionSaver implements UncaughtExceptionHandler{ 

    UncaughtExceptionHandler previousHandler; 
    Context context; 

    public UncaughtExceptionSaver (Context context){ 
     this.context = context; 
     previousHandler= Thread.getUncaughtExceptionHandler(); 
    } 

    @Override 
    void uncaughtException(Thread t, Throwable e){ 

     /*Save the stacktrace from the throwable to a 
      file in your external directory, using context. */ 

     previousHandler.uncaughtException(t,e); 
    } 
} 

然後在應用程序子類,稱這種現象爲onCreate方法:

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionSaver(this)); 
+0

謝謝,這可能會工作;) – Frame91

+0

不幸的是它沒有。有時候,應用程序在它發現這些異常之前就崩潰了......並且我無法弄清楚爲什麼會發生這種情況 – Frame91

+0

您是否嘗試CatLog?日誌中必須有東西(我認爲)。 – Tenfour04