2014-09-10 69 views
17

方案

我已經發布了一個Android應用程序的測試版本幾個朋友從設備發送日誌條目。現在,我想修復測試期間出現的一些錯誤。Android的logcat的:使用電子郵件

我已經設置了第三方崩潰報告實用程序,所以我可以輕鬆處理應用程序崩潰。但是,有一些錯誤的行爲不會導致崩潰。在這些情況下,我想檢查應用程序日誌並查看出了什麼問題。

是否有應用程序通過電子郵件發送其logcat的條目的方式嗎?

澄清

  • 有許多記錄應用程序(android-log-collectorLog Viewer (logcat)),它可以檢測並顯示logcat的條目。但是,自Android 4.1以來,這些應用程序無法訪問其他應用程序的日誌。
  • 我不介意在設備中佔用大量空間 - 此功能僅適用於測試版測試人員。
  • 該解決方案應該不需要root或任何其他特殊權限。
+1

你讀過這https://github.com/ACRA/acra? – deniz 2014-09-10 12:37:32

+0

[發送一個App的logcat的輸出到的emailadress](http://stackoverflow.com/questions/2852181/send-logcat-output-of-an-app-to-an-emailadress) – avalancha 2015-11-04 08:42:29

回答

19

調用此方法onDestory您的主要活動。

public void SendLoagcatMail(){ 

    // save logcat in file 
    File outputFile = new File(Environment.getExternalStorageDirectory(), 
      "logcat.txt"); 
    try { 
     Runtime.getRuntime().exec(
       "logcat -f " + outputFile.getAbsolutePath()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

//send file using email 
Intent emailIntent = new Intent(Intent.ACTION_SEND); 
// Set type to "email" 
emailIntent.setType("vnd.android.cursor.dir/email"); 
String to[] = {"[email protected]"}; 
emailIntent .putExtra(Intent.EXTRA_EMAIL, to); 
// the attachment 
emailIntent .putExtra(Intent.EXTRA_STREAM, outputFile.getAbsolutePath()); 
// the mail subject 
emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
startActivity(Intent.createChooser(emailIntent , "Send email...")); 
} 
+1

尼斯的可能的複製。我甚至可以將它附加到一個按鈕上,這樣用戶就可以在我請求時將日誌發送給我。 – 2014-09-10 12:48:00

+0

是的。 請將此答案標記爲已接受,如果它爲您工作。 – 2014-09-10 12:49:26

+0

當然,我會盡快做到這一點。你有任何想法,如果它需要根或其他特殊權限? – 2014-09-10 12:53:23

0

這聽起來像RemoteLogger正是你需要

https://github.com/sschendel/RemoteLogger

捕獲調試日誌記錄到用戶可以輕鬆地通過電子郵件發送給你的文件。這是爲了排除用戶報告的不可重現錯誤而創建的。爲了清楚起見,日誌記錄被放入發佈的應用程序版本中,以測試用戶進行故障排除。在最終生產代碼中刪除。

庫提供掛鉤來啓動,停止,發送和刪除日誌文件。

相關問題