ACRA 未发送 logcat
ACRA not sending logcat
编辑
归功于 F43nd1r,解决方案是将 LOGCAT 放入您的 ReportsCrashes 注释中,例如
@ReportsCrashes (
mailTo = "log@perinote.com",
mode = ReportingInteractionMode.TOAST,
customReportContent = {ReportField.ANDROID_VERSION,
ReportField.STACK_TRACE,
ReportField.LOGCAT},
resToastText = R.string.crash_toast_text
)
原版POST
我正在试用 ACRA,希望它能捕获堆栈跟踪和 logcat。目前,我已将其配置为调用我的电子邮件应用程序来发送数据。崩溃后,它会显示祝酒词,并打开邮件应用程序,邮件正文中有堆栈跟踪。然而,没有logcat.
据我所知,根据文档,当我将 READ_LOGS 权限放入清单时,它应该包括报告中 logcat 的最后 200 行。
我正在 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 = "log@perinote.com",
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);
}
}
我认为我的任何其他文件都不相关,但如果您需要更多信息,请告诉我。
Including a full report could be quite difficult due to the data size. Default fields included in email reports are:
- ReportField.USER_COMMENT
- ReportField.ANDROID_VERSION
- ReportField.APP_VERSION_NAME
- ReportField.BRAND
- ReportField.PHONE_MODEL
- ReportField.CUSTOM_DATA
- ReportField.STACK_TRACE
因此,如果您想要包含 logcat,则必须修改报告字段以包含 ReportField.LOGCAT。
请注意,从 ACRA 4.9.3(未发布)开始,您可以将报告作为邮件附件而不是正文发送,因此大小不再是问题。
在此之前,包含 logcat 可能会导致报告无法发送(因为它们可能会超出邮件提供商规定的字符限制)。
以上答案仅适用于 ACRA 4.x. 在 ACRA 5.x 中,所有发件人的默认配置都相同,并且确实包括 logcat.
编辑
归功于 F43nd1r,解决方案是将 LOGCAT 放入您的 ReportsCrashes 注释中,例如
@ReportsCrashes (
mailTo = "log@perinote.com",
mode = ReportingInteractionMode.TOAST,
customReportContent = {ReportField.ANDROID_VERSION,
ReportField.STACK_TRACE,
ReportField.LOGCAT},
resToastText = R.string.crash_toast_text
)
原版POST
我正在试用 ACRA,希望它能捕获堆栈跟踪和 logcat。目前,我已将其配置为调用我的电子邮件应用程序来发送数据。崩溃后,它会显示祝酒词,并打开邮件应用程序,邮件正文中有堆栈跟踪。然而,没有logcat.
据我所知,根据文档,当我将 READ_LOGS 权限放入清单时,它应该包括报告中 logcat 的最后 200 行。
我正在 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 = "log@perinote.com",
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);
}
}
我认为我的任何其他文件都不相关,但如果您需要更多信息,请告诉我。
Including a full report could be quite difficult due to the data size. Default fields included in email reports are:
- ReportField.USER_COMMENT
- ReportField.ANDROID_VERSION
- ReportField.APP_VERSION_NAME
- ReportField.BRAND
- ReportField.PHONE_MODEL
- ReportField.CUSTOM_DATA
- ReportField.STACK_TRACE
因此,如果您想要包含 logcat,则必须修改报告字段以包含 ReportField.LOGCAT。
请注意,从 ACRA 4.9.3(未发布)开始,您可以将报告作为邮件附件而不是正文发送,因此大小不再是问题。 在此之前,包含 logcat 可能会导致报告无法发送(因为它们可能会超出邮件提供商规定的字符限制)。
以上答案仅适用于 ACRA 4.x. 在 ACRA 5.x 中,所有发件人的默认配置都相同,并且确实包括 logcat.