编辑
对于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行。
我正在安卓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);
}
}
我认为我的任何其他文件都不相关,但如果你需要更多信息,请告诉我。
由于数据大小的原因,包含完整报告可能相当困难。电子邮件报告中包含的默认字段为:
- 报告字段。用户_意见
- ReportField。ANDROID_版本
- ReportField。应用程序版本名称
- ReportField。品牌
- ReportField。手机型号
- ReportField。客户数据
- ReportField。STACK_TRACE
来源:通过邮件发送报告
因此,如果要包含logcat,则必须修改报告字段以包含ReportField。LOGCAT。
请注意,从ACRA 4.9.3(未发布)开始,您可以将报告作为邮件附件而不是正文发送,因此大小应该不再是问题。在此之前,包括logcat可能会导致无法理解的报告(因为它们可能超过邮件提供商规定的字符限制)。
以上答案仅适用于ACRA 4.x。在ACRA 5.x中,所有发件人的默认配置相同,并且包括logcat。