Пакет Acra не является постоянной ошибкой (Android Studio)

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

03-13 12:52:37.588      332-332/? D/ACRA﹕ ACRA is enabled for com.myapp.application, intializing...
03-13 12:52:37.598      332-332/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.598      332-332/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.608      332-332/? V/ACRA﹕ About to start ReportSenderWorker from #checkReportOnApplicationStart
03-13 12:52:37.608      332-350/? D/ACRA﹕ #checkAndSendReports - start
03-13 12:52:37.608      332-350/? D/ACRA﹕ Looking for error files in /data/data/com.myapp.application/files
03-13 12:52:37.608      332-350/? I/ACRA﹕ Sending file 1f0d91c8-ca49-4de3-82ac-236d6337a2d1.stacktrace
03-13 12:52:37.618      332-350/? E/ACRA﹕ Failed to send crash reports for 1f0d91c8-ca49-4de3-82ac-236d6337a2d1.stacktrace
    java.lang.IllegalArgumentException: Package is not a constant in org.acra.ReportField
            at java.lang.Enum.valueOf(Enum.java:198)
            at org.acra.CrashReportPersister.load(CrashReportPersister.java:264)
            at org.acra.CrashReportPersister.load(CrashReportPersister.java:75)
            at org.acra.SendWorker.checkAndSendReports(SendWorker.java:140)
            at org.acra.SendWorker.run(SendWorker.java:77)
03-13 12:52:37.618      332-350/? D/ACRA﹕ #checkAndSendReports - finish

Это мой файл приложения

@ReportsCrashes(
 formKey = "",
 mailTo = "[email protected]",
 reportType = org.acra.sender.HttpSender.Type.JSON,
 mode = ReportingInteractionMode.TOAST,
 forceCloseDialogAfterToast = false, // optional, default false
 resToastText = R.string.error_something_went_wrong,
)
public class MyApplication extends Application {

@Override
public void onCreate() {
    ACRA.init(this);
    super.onCreate();
}

@Override
public void onTerminate() {
    super.onTerminate();
}

}

person aNoviceGuy    schedule 13.03.2014    source источник
comment
Выложи свой конфиг ACRA. т.е. аннотации для класса Application.   -  person William    schedule 14.03.2014
comment
@William Я добавил сюда свой файл приложения. Сейчас это довольно просто, просто отправьте журналы ошибок по электронной почте. Спасибо.   -  person aNoviceGuy    schedule 14.03.2014


Ответы (1)


Хорошо, при чтении ранее сгенерированного отчета о сбое он наткнулся на фрагмент данных «Пакет», который, по его мнению, является экземпляром ReportField. Но ReportField.PACKAGE отсутствует, поэтому происходит сбой.

Возможны 2 причины сбоя.

  1. Созданный отчет о сбое поврежден.
  2. Раньше у вас была конфигурация, в которой указывался специальный список полей для вывода, который включал поле под названием «ПАКЕТ», а ACRA добавляло поле без данных (потому что оно не понимает это поле).

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

person William    schedule 15.03.2014