Logcat空在设备上使用ACRA

时间:2013-01-28 22:25:46

标签: android logcat acra

所以我使用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完全是空的。

任何人都有任何想法?

2 个答案:

答案 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