所以我使用ACRA 4.4.0的所有默认值,我的logcat字段为空。
我的应用有
<uses-permission android:name="android.permission.READ_LOGS" />
权限,至少应该从my own app logs开始给我Jelly Bean。
最后注意事项:未向第三方应用授予READ_LOG权限 自Android 4.1(JellyBean)以来。从这个版本开始, logcat仅提供来自您自己的应用程序的痕迹,而无需使用 允许。 JellyBean logcat日志由ACRA检索 版本4.3.0b2
所以我做了强制记录:
Log.i("mytag" , "message");
ACRA.getErrorReporter().handleException(null);
在模拟器(v4.2)上,我获得了完整的logcat。 (哪种BTW与JB强加的logcat限制有些矛盾)
但是,在我的设备v4.2.1上,logcat完全是空的。
任何人都有任何想法?
答案 0 :(得分: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;
答案 1 :(得分:1)
我想这是因为从JellyBean开始你不能再使用READ_LOGS了。如需进一步说明,请阅读:
http://commonsware.com/blog/2012/07/12/read-logs-regression.html