修改
归功于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
)
原始帖子
我尝试了ACRA并希望它能够捕获堆栈跟踪和logcat。目前,我已将其配置为调用我的电子邮件应用程序来发送数据。崩溃后,它会显示一个Toast,并在邮件正文中打开带有堆栈跟踪的电子邮件应用程序。但是,没有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>
package 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);
}
}
我认为我的其他任何文件都不相关,但如果您需要更多信息,请与我们联系。
答案 0 :(得分:2)
由于数据大小,包括完整报告可能非常困难。电子邮件报告中包含的默认字段为:
- 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可能会导致不可报告的报告(因为它们可能会超过邮件提供商强加的字符限制)。