Все SharedPreferences, отправленные ACRA, пусты.

Я следовал руководству по реализации захвата SharePreferences внутри ACRA. Что я в основном сделал, так это включил следующую строку в конфигурацию (это одна из строк полной конфигурации:

  customReportContent = { APP_VERSION, 
                       ANDROID_VERSION,
                       SHARED_PREFERENCES }
  additionalSharedPreferences={"EXTRA_MESSAGE","NOTIF_ACTIVATED"}

Я следовал информации из этого руководства и подробностям в этом .

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

Я приказываю перепроверить. Я включил опцию электронной почты, чтобы проверить, какие данные были записаны ACRA, также заполнив поле пустым. Доказательства, которые у меня есть: - Отчет в Clound Ant с SharedPreferences пуст. - Текст электронного письма, введенный ACRA и предложенный пользователю, также имеет поле «пустое». - Отсутствие вывода ошибок ACRA ни при каких операциях

После расследования утром я заблокирован, и я не знаю, что еще делать.

SDK21 и ACRA4.5.0 с использованием мобильного устройства Android 2.3.


person Trebia Project.    schedule 02.12.2014    source источник
comment
Вы упомянули, что значения, которые появляются в вашей базе данных Cloud Ant, пусты, но что происходит по сети? Как выглядят значения поля SHARED_PREFERENCES или ?additionalSharedPreferences в запросе?   -  person William    schedule 02.12.2014
comment
Помимо трюка, который я использовал сегодня утром для активации электронной почты (добавлен в моем ответе), есть ли способ увеличить журналы, предоставленные ACRA, чтобы я мог предоставить дополнительную информацию? Shared_preferences в запросе — это те, которые я вам покажу. Я намеренно уменьшил его до 2 в своих тестах, чтобы избежать других ошибок.   -  person Trebia Project.    schedule 03.12.2014
comment
Ты не понял. Опубликуйте значения запроса, когда он попадет на ваш сервер. Я подозреваю, что значения могут поступать туда, но код вашего сервера их игнорирует.   -  person William    schedule 03.12.2014
comment
Гм... это не объясняет, почему, когда я активирую в ACRA отправку значений по почте, они также пусты. Я думаю, что обе проблемы связаны, не так ли?   -  person Trebia Project.    schedule 05.12.2014
comment
Звучит вероятно - поднимите вопрос.   -  person William    schedule 05.12.2014
comment
Сделано, посмотрим... видимо вывод этого запроса что есть баг и можно его закрывать.   -  person Trebia Project.    schedule 12.12.2014


Ответы (1)


На самом деле это было неправильное использование SharePreferences в ACRA, а не ошибка в ACRA.

При создании экземпляра SharedPreferences хорошей практикой является создание выделенного файла с использованием строки кода, подобной этой:

  String MyPREFERENCES = "MYPREFS";
  sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

В этом случае "MyPREFENCES" будет именем нового предпочтения. Чтобы правильно использовать ACRA, этот новый файл необходимо явно добавить в конфигурацию ACRA, используя следующее:

additionalSharedPreferences={"MYPREFS"}

Проблема, с которой я столкнулся, заключалась в том, что я включил поля, которые я включил в свои общие настройки, а НЕ файл настроек, который я создал. Просто добавив правильное имя файла, все работало нормально.

person Trebia Project.    schedule 01.02.2015