Logcat空在设备上使用ACRA

Mag*_*son 7 android logcat acra

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

我的应用程序有

<uses-permission android:name="android.permission.READ_LOGS" />
Run Code Online (Sandbox Code Playgroud)

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

最后注意事项:自Android 4.1(JellyBean)以来,不再向第三方应用授予READ_LOG权限.从此版本开始,logcat仅提供来自您自己的应用程序的跟踪,无需权限.从版本4.3.0b2开始,ACRA检索JellyBean logcat日志

所以我做了强制日志:

Log.i("mytag" , "message");
ACRA.getErrorReporter().handleException(null);
Run Code Online (Sandbox Code Playgroud)

在模拟器(v4.2)上,我获得了完整的logcat.(哪个BTW与JB强加的logcat限制有些矛盾)
但是,在我的设备v4.2.1上,logcat完全是空的.

有人有什么想法吗?

小智 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
)
Run Code Online (Sandbox Code Playgroud)

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

笔记2: import org.acra.ReportField;


mar*_*inj 1

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

http://commonsware.com/blog/2012/07/12/read-logs-regression.html
Run Code Online (Sandbox Code Playgroud)