Fabric Crashlytics для Android - как добавить дополнительную информацию в область stackTrace

Я хотел бы получить дамп объекта, дополнительно отправленный во время регистрации исключений crashlytics. Так, например, допустим, что возникает исключение nullPointerException. Я хотел бы дополнительно добавить большой объект, который будет моей моделью, и включить его в область трассировки стека в crashlytics. таким образом, когда я вижу трассировку стека, я также могу просматривать информацию о модели из дампа. Как мне отправить эту информацию в дополнение к обычному ведению журнала сбоев? Вот что у меня есть на данный момент:

        try{
    //....
throw new NullPointerException("my cool msg");

    }
          catch(Exception e){      
               Crashlytics.setInt("priority", 4);
                Crashlytics.setString("tag", "mytag");
                Crashlytics.setString("message", Model.toString());   
                Crashlytics.logException(e);         
    } 

Что происходит сейчас, так это то, что ничего не появляется. но если я закомментирую setString для «message», то получу трассировку стека с сообщением «my cool msg».

ОБНОВЛЕНИЕ: я даже пробовал Crashlytics.log (Model.toString ()); но это ничего не говорит о крашлитике. Я настраиваю crashlytics из подкласса Application в onCreate следующим образом: Fabric.with(this, new Crashlytics());

из документов cashlytics я нашел это:

Чтобы гарантировать, что отправка отчетов о сбоях минимально повлияет на устройства ваших пользователей, журналы Crashlytics имеют максимальный размер 64 КБ. Когда размер журнала превышает 64 КБ, самые ранние зарегистрированные значения будут отброшены, чтобы поддерживать этот порог.

это может быть моя проблема. проверяю свой размер сейчас ...

регулировка размера полезной нагрузки не сработала. Я сделал полезную нагрузку 9 символов, но она все еще не отображается.

ОБНОВИТЬ:

Давайте начнем снова, но проще. почему у меня не работает следующее?

try{
//....
throw new NullPointerException("my cool msg");

}
   catch(Exception e){      
        Crashlytics.setInt("priority", 4);
         Crashlytics.setString("tag", "mytag");
         Crashlytics.setString("message", "");   
         Crashlytics.logException(e);         
}

Что здесь происходит, так это то, что на панели инструментов crasylytics появляется stacktrace со словами «мое крутое сообщение», но ничего не говорится о приоритете, теге или сообщении. Появляется только трассировка стека. там не должно быть записей с этими заголовками что ли?


person j2emanue    schedule 22.12.2016    source источник
comment
Не уверен, но если ваша модель нулевая, то какое сообщение должно быть кроме NULL? Также попробуйте таким способом Crashlytics.log (Model.toString ()); если он содержит какие-либо данные.   -  person VVB    schedule 22.12.2016
comment
Я подтвердил, что у него есть данные. Я распечатываю это в тосте.   -  person j2emanue    schedule 22.12.2016
comment
Вы пробовали 2-й способ?   -  person VVB    schedule 22.12.2016
comment
да не работает. я обновил свой ответ. Я также пробовал следующее, но ничего не отправляется в crashlytics. кажется, работает только в том случае, если я не отправляю объект. Crashlytics.setInt (приоритет, 4); Crashlytics.setString (тег, tag_welcomeLogin); //Crashlytics.setString(message, e.getMessage () + schemaStr); Crashlytics.log (schemaStr.substring (1,90)); Crashlytics.logException (e); обратите внимание, я даже сделал объект 90 символов, если длина была проблемой.   -  person j2emanue    schedule 22.12.2016


Ответы (1)


введите здесь описание изображения

После нажатия на зеленую кнопку «просмотреть все сеансы» я смог увидеть настраиваемую информацию. они могли бы сделать это более очевидным.

а также из документов это Кажется, что нефатальные исключения объединяются и отправляются при следующем запуске приложения:

Crashlytics обрабатывает исключения в выделенном фоновом потоке, поэтому влияние на производительность вашего приложения минимально. Чтобы уменьшить сетевой трафик ваших пользователей, Crashlytics собирает зарегистрированные исключения вместе и отправляет их при следующем запуске приложения.

person j2emanue    schedule 22.12.2016