2017-06-01 33 views
2

編輯ACRA不發送logcat的

以信譽F43nd1r,解決的辦法是把logcat的你ReportsCrashes註釋,例如

@ReportsCrashes (
    mailTo = "[email protected]", 
    mode = ReportingInteractionMode.TOAST, 
    customReportContent = {ReportField.ANDROID_VERSION, 
         ReportField.STACK_TRACE, 
         ReportField.LOGCAT}, 
    resToastText = R.string.crash_toast_text 
) 

原帖

我嘗試ACRA並希望它來捕捉堆棧跟蹤和logcat的。目前,我已配置它調用我的電子郵件應用程序發送數據。發生崩潰時,它會顯示敬酒信息,並在消息正文中打開具有堆棧跟蹤的電子郵件應用程序。但是,沒有logcat。

盡我所知,根據文檔,當我將READ_LOGS權限放入清單中時,它應該在報告中包含最後200行logcat。

我正在測試Android 7.0設備。

清單:

<manifest package="com.perinote.crashtest" 
      xmlns:android="http://schemas.android.com/apk/res/android"> 

    <uses-permission android:name="android.permission.READ_LOGS"></uses-permission> 

    <application 
    ... 
    </application> 
</manifest> 

包com.perinote.crashtest;

import ...; 

@ReportsCrashes (
    mailTo = "[email protected]", 
    mode = ReportingInteractionMode.TOAST, 
    resToastText = R.string.crash_toast_text 
) 

public class AppSubclass extends Application 
{ 
    @Override 
    protected void attachBaseContext(Context base) 
    { 
    super.attachBaseContext(base); 
    ACRA.init (this); 
    } 
} 

我不認爲我的任何其他文件是相關的,但讓我知道如果你需要更多的信息。

+0

** Nitpick **:不使用READ_LOGS。你必須有系統簽名才能使用它 – Zoe

回答

1

由於數據大小的原因,包含完整報告可能會相當困難。包含在電子郵件報告默認領域是:

  • ReportField.USER_COMMENT
  • ReportField.ANDROID_VERSION
  • ReportField.APP_VERSION_NAME
  • ReportField.BRAND
  • ReportField.PHONE_MODEL
  • ReportField.CUSTOM_DATA
  • ReportField.STACK_TRACE

來源:Sending Reports by Mail

所以,如果您想包括logcat的,你必須修改報表字段包括ReportField.LOGCAT。


注意,從ACRA 4.9.3(未發行)開始,你就可以發送報告作爲郵件附件而不是作爲機身,所以大小不應該是一個問題了。 在此之前,包括logcat可能會導致不可發佈的報告(因爲它們可能會超過郵件提供商施加的字符限制)。

+0

我的問題指出* no * logcat包含在電子郵件附件或正文中。你對我的問題有答案嗎?謝謝。 –

+0

這是因爲logcat不在默認列表中 - 您必須包含它。編輯答案爲清晰。 – F43nd1r

+0

謝謝,謝謝!這工作。不幸的是,他們的文檔只說明在清單中包含READ_LOGS權限。即使在你參考的頁面上,也沒有提到ReportField.LOGCAT。 –

相關問題