在设备上使用 ACRA 清空日志



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

我的应用具有

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

权限,这至少应该给我自己的应用程序日志,因为果冻豆。

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

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

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

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

有人有什么想法吗?

如果您

使用电子邮件模式的 acra 报告(@ReportsCrashesmailTo标签),则不包括 LogCat 字段以减小报告大小。要解决此问题,您只需要使用自定义报告内容标签。

(在我找到这个之前花了一段时间搜索 - 它写在文档中,只是没有在提到 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;

我想

这是因为从JellyBean开始你不能再使用READ_LOGS了。有关进一步的说明,请阅读此处:

http://commonsware.com/blog/2012/07/12/read-logs-regression.html

相关内容

  • 没有找到相关文章

最新更新