Страница 1 из 1

Подключение ACRA

Добавлено: 25 мар 2013, 22:41
KamiSempai
Так как пользователи не охотно шлют отчеты об ошибка, решил подключить библиотеку ACRA.
Сделал все, вроде бы, по инструкции. http://habrahabr.ru/post/123542/ Только без параметра logcatArguments в анотации.
Однако, отчеты не отправляются и при попытке их отправки в логи вылетают ошибки.

Код: Выделить всё

03-25 22:54:12.116: W/ResponseProcessCookies(22961): Invalid cookie header: "Set-Cookie: NID=67=mkEFZDLsd6Vd04GgZzdpPhtFO9cPCHabQ0sIXKG7nUXkg7PrVrpMLwlPNXhOrJufCeY9G0ZAJUHZ0GWy8P1Yd33qYY6SK5TSqwdrJejMmbP1k32WmJCZfnfahMnx0zB9;Domain=.google.com;Path=/;Expires=Tue, 24-Sep-2013 18:54:13 GMT;HttpOnly". Unable to parse expires attribute: Tue
03-25 22:54:12.119: E/ACRA(22961): Failed to send crash report for 1364236260000-approved.stacktrace
03-25 22:54:12.119: E/ACRA(22961): org.acra.sender.ReportSenderException: Error while sending report to Google Form.
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:88)
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.SendWorker.sendCrashReport(SendWorker.java:178)
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.SendWorker.checkAndSendReports(SendWorker.java:141)
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.SendWorker.run(SendWorker.java:77)
03-25 22:54:12.119: E/ACRA(22961): Caused by: java.io.IOException: Host returned error code 400
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.util.HttpRequest.sendPost(HttpRequest.java:139)
03-25 22:54:12.119: E/ACRA(22961): 	at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:85)
03-25 22:54:12.119: E/ACRA(22961): 	... 3 more
Что-то мне подсказывает, что я не правильно указал formKey. В инструкции говорится о ссылке внизу формы, но гугл диск с того момента сильно изменился.
У меня ссылка на форму выглядит так:
https://docs.google.com/forms/d/... Много цифр и букв .../edit
В качестве ключа я указал именно этот набор цифр и букв.
Но почему-то такой вариант не работает.

PS: Доступ у обоих документов(таблица и форма): "Изменить документ может любой пользователь, обладающий ссылкой.";
У приложения есть разрешение на интернет и чтение логов.
С интернетом проблем нет. На всякий случай установил socketTimeout = 30000.

PPS: И что за Expires такой, равный Tue? Может быть имелось ввиду True. Тогда получается ошибка в библиотеке?

Re: Подключение ACRA

Добавлено: 27 мар 2013, 11:40
kolipass
Отвечу кратно.
@ReportsCrashes(formKey = "ключ 34 символа")
public class MyApplication extends Application {
@Override
public void onCreate() {
ACRA.init(this);
super.onCreate();
}
}

так будет работать. У меня так на продакте. пока хватает. Теперь про ключ:
Изображение
этот ключ.

Re: Подключение ACRA

Добавлено: 27 мар 2013, 12:03
KamiSempai
Теперь я понял в чем проблема. В самом начале я выбрал пункт "Создать форму", а надо было "Создать форму в прежней версии".
Если выбрать "Создать форму" пункт меню по созданию прежней формы исчезает. В начале я не обратил на это внимание, а потом было уже поздно.

Re: Подключение ACRA

Добавлено: 27 мар 2013, 14:38
rezak90
кстати вопрос по этой либе, она отлавливает все креши? или только те которые в try-catch? я так понял что все если она подключается на уровне application.
и ещё вопрос, она умеет только отсылать? или можно записывать в бд креши?

Re: Подключение ACRA

Добавлено: 27 мар 2013, 15:20
KamiSempai
Я только начал изучать эту либу, но на сколько я понял отлавливает она только креши приложения которые ни как не были обработаны. А try-catch - это вполне нормальная обработка исключения.
Хотя, думаю, не будет проблемой в блоке catch самому передать Exception в библиотеку на обработку.
И, не пойму, зачем записывать исключения в базу?

Re: Подключение ACRA

Добавлено: 27 мар 2013, 15:55
rezak90
И, не пойму, зачем записывать исключения в базу?
мы такое делаем на альфа/бета тестирование что бы народ собирал краши и потом отсылали нам, например краши могут быть каждую минуту и зачем пользователю отсылать кажду минуту, а так насобирал и в удобное время отпарвил

Re: Подключение ACRA

Добавлено: 27 мар 2013, 16:05
KamiSempai
rezak90 писал(а):мы такое делаем на альфа/бета тестирование что бы народ собирал краши и потом отсылали нам, например краши могут быть каждую минуту и зачем пользователю отсылать кажду минуту, а так насобирал и в удобное время отпарвил
Про отправку пачками не знаю, но все отчеты которые не удалось отправить хранятся на устройстве и будут отправлены когда появится возможность. К тому же можно сделать так, что бы отчет отправлялся без подтверждения со стороны пользователя. Думаю всплывающий тост с информацией от том, что отчет отправлен не так сильно будет нервировать пользователя, как необходимость сделать это лично. Тем более не все пользователи на столько сознательны, многие просто поморщат нос, обругают программу и все.