2012-12-28 158 views
2

我想爲我的Android應用創建日誌文件。我需要這個來調試應用程序的隨機崩潰。爲Android應用創建日誌文件

我想創建一個函數,如果有一個unhandelled異常,總是會被調用。在日誌中我想要異常消息。是否有任何類型的機制會在ANdroid的unhandelled異常中被調用?

+0

爲什麼logcat的輸出還不夠嗎? – Henry

+0

@Henry該應用程序將安裝在設備上,我想解決它爲什麼崩潰,通過將日誌保存到SD卡 – Jaguar

+0

當設備通過USB連接到PC時,您可以獲得此信息。即使您在碰撞後不久連接設備也能正常工作。 – Henry

回答

2

您可以使用UncaughtExceptionHandler如下圖所示:

public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler { 
    String Tag; 
    Context myContext; 
    public UncaughtExceptionHandler(Context context, String TAG) { 
     Tag = TAG; 
     myContext = context; 
    } 

    public void uncaughtException(Thread thread, Throwable exception) { 
     StringWriter sw = new StringWriter(); 
     exception.printStackTrace(new PrintWriter(sw)); 
     Logger.appendErrorLog(sw.toString(), Tag); 
     Intent intent = new Intent(myContext, ForceClose.class); 
     intent.putExtra(BugReportActivity.STACKTRACE, sw.toString()); 
     myContext.startActivity(intent); 
     Process.killProcess(Process.myPid()); 
     System.exit(10); 
    } 
} 

調用這個類中的第一個活動的onCreate()方法:

Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(getApplicationContext(),"FirstActivity")); 
2

嘗試使用Android Android Acra

真的有那麼請試試這個。

+0

謝謝,阿克拉是偉大的,但我想寫我的代碼。你能幫忙嗎? – Jaguar

2

你可以寫自己的日誌貓,

當你的應用程序安裝在真正的Android設備,而不是連接到Eclipse獲得詳細的調試信息

...

請檢查教程:Read & Store Log-cat Programmatically in Android

您也可以查看this stack-overflow頁面我已經發布解決方案代碼片段和相關的有用信息。

相關問題