7

所以我使用所有默认值的 ACRA 4.4.0,我的 logcat 字段为空。

我的应用程序有

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

权限,这至少应该给我自Jelly Bean以来我自己的应用程序日志

最后说明:自 Android 4.1 (JellyBean) 以来,第三方应用程序不再授予 READ_LOG 权限。从这个版本开始,logcat 只提供来自您自己的应用程序的跟踪,而不需要许可。JellyBean logcat 日志由 ACRA 从 4.3.0b2 版本开始检索

所以我做了一个强制日志:

Log.i("mytag" , "message");
ACRA.getErrorReporter().handleException(null);

在模拟器(v4.2)上,我得到了完整的 logcat。(顺便说一句,这与 JB 施加的 logcat 限制有些矛盾)
但是,在我的设备 v4.2.1 上,logcat 完全是空的。

有人有什么想法吗?

4

2 回答 2

6

如果您使用电子邮件模式 acra 报告(mailTo内部标记@ReportsCrashes),则不包含 LogCat 字段以减小报告大小。要解决这个问题,您只需要使用 customReportContent 标记。

(在我找到这个之前花了一些时间搜索 - 它写在文档中,只是没有在提到 LogCat 的部分中)

@ReportsCrashes(formKey = "",
    mailTo = "xxxx@yyyy.com",
    customReportContent = {ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.STACK_TRACE, ReportField.LOGCAT },
    mode = ReportingInteractionMode.TOAST,
    resToastText = R.string.crash_toast_text
)

注意:我排除了 USER_CONTENT 和 CUSTOM_DATA 字段

笔记2:import org.acra.ReportField;

于 2013-09-18T12:00:47.133 回答
1

我想这是因为从 JellyBean 开始你不能再使用 READ_LOGS 了。如需进一步解释,请阅读此处:

http://commonsware.com/blog/2012/07/12/read-logs-regression.html
于 2013-01-28T22:35:34.150 回答