2016-12-22 4 views
1

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

 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 для «сообщения», тогда я получаю стек с помощью сообщения «my cool msg».

UPDATE: Я даже пробовал Crashlytics.log (Model.toString()); но это ничего не показывает о краштиках. Я настраиваю crashlytics из подкласса Application в OnCreate, как это: Fabric.with(this, new Crashlytics());

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

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

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

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

UPDATE:

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

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

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

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

+0

Не уверен, но если ваша модель пуста, то какое сообщение должно за исключением NULL? Также попробуйте Crashlytics.log (Model.toString()); если он содержит какие-либо данные. – VVB

+0

Я подтвердил, что у него есть данные. Я распечатаю его в сообщении тоста. – j2emanue

+0

Вы попробовали второй способ? – VVB

ответ

1

enter image description here

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

, а также от docs, кажется, что не фатальные исключения дозируется и отправляется в следующий раз, когда приложение запускается:

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

Смежные вопросы