ACRA не отправляет logcat

ИЗМЕНИТЬ

Благодаря F43nd1r решение состоит в том, чтобы поместить LOGCAT в аннотацию ReportsCrashes, например.

@ReportsCrashes (
  mailTo = "[email protected]",
  mode = ReportingInteractionMode.TOAST,
  customReportContent = {ReportField.ANDROID_VERSION, 
                         ReportField.STACK_TRACE, 
                         ReportField.LOGCAT},
  resToastText = R.string.crash_toast_text
)

ИСХОДНОЕ СООБЩЕНИЕ

Я пробую ACRA и хочу, чтобы он фиксировал трассировку стека и logcat. На данный момент я настроил его для вызова моего почтового приложения для отправки данных. При сбое отображается всплывающее уведомление и открывается приложение электронной почты с трассировкой стека в теле сообщения. Однако логкэта нет.

Насколько я могу судить по документации, когда я добавляю разрешение READ_LOGS в манифест, оно должно включать в отчет последние 200 строк логарифма.

Я тестирую на устройстве Android 7.0.

манифест:

<manifest package="com.perinote.crashtest"
          xmlns:android="http://schemas.android.com/apk/res/android">

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

  <application
    ...
  </application>
</manifest>

пакет com.perinote.crashtest;

import ...;

@ReportsCrashes (
  mailTo = "[email protected]",
  mode = ReportingInteractionMode.TOAST,
  resToastText = R.string.crash_toast_text
)

public class AppSubclass extends Application
{
  @Override
  protected void attachBaseContext(Context base)
  {
    super.attachBaseContext(base);
    ACRA.init (this);
  }
}

Я не думаю, что какие-либо другие мои файлы имеют отношение к делу, но дайте мне знать, если вам нужна дополнительная информация.


person Peri Hartman    schedule 01.06.2017    source источник
comment
Придирка: READ_LOGS не используется. у вас должна быть системная подпись, чтобы использовать его   -  person Zoe    schedule 16.06.2017


Ответы (1)


Включение полного отчета может быть довольно сложным из-за размера данных. Поля по умолчанию, включенные в отчеты по электронной почте:

  • ReportField.USER_COMMENT
  • ReportField.ANDROID_VERSION
  • ReportField.APP_VERSION_NAME
  • ReportField.BRAND
  • ReportField.PHONE_MODEL
  • Поле отчета.CUSTOM_DATA
  • ReportField.STACK_TRACE

Источник: Отправка отчетов по почте

Итак, если вы хотите включить logcat, вам нужно изменить поля отчета, чтобы включить ReportField.LOGCAT.


Обратите внимание, что, начиная с версии ACRA 4.9.3 (Unreleased), вы сможете отправлять отчет в виде почтового вложения, а не в виде тела, поэтому размер больше не должен быть проблемой. До тех пор включение logcat может привести к невозможности отправки отчетов (поскольку они могут превышать ограничения на количество символов, установленные почтовыми провайдерами).


Приведенный выше ответ относится только к ACRA 4.x. В ACRA 5.x конфигурация по умолчанию одинакова для всех отправителей и не включает logcat.

person F43nd1r    schedule 01.06.2017
comment
В моем вопросе говорится, что нет logcat не был включен в электронное письмо - вложение или тело. У вас есть ответ на мой вопрос? Спасибо. - person Peri Hartman; 01.06.2017
comment
Это потому, что logcat нет в списке по умолчанию — вы должны включить его. Отредактированный ответ для ясности. - person F43nd1r; 01.06.2017
comment
Спасибо Спасибо ! Это работает. К сожалению, в их документации говорится только о включении разрешения READ_LOGS в манифест. Даже на странице, на которую вы ссылаетесь, ReportField.LOGCAT не упоминается. - person Peri Hartman; 01.06.2017