Ошибка при сохранении UsageStats в Firebase: цикл объекта - PullRequest
0 голосов
/ 29 апреля 2020

Мое приложение должно хранить различные типы данных в хранилище firebase-firestore. Среди прочего, данные UsageStats должны быть сохранены. Следующий код работает над API29:

1) получение useStats:

 UsageStatsManager mUsageStatsManager = (UsageStatsManager) 
 mContext.getSystemService(Context.USAGE_STATS_SERVICE);
 Map<String, UsageStats> lUsageStatsMap = mUsageStatsManager.
     queryAndAggregateUsageStats(mStartMillis, mEndMillis);

2) сохранение его в firebase

 mFirebaseRepository.saveUsageStatsToFirebase(lUsageStatsMap, mEndMillis);

Проблема: при тестировании по API26 , работник отменен из-за следующего исключения:

java .util.concurrent.ExecutionException: java .lang.IllegalArgumentException: Не удалось сериализовать объект. Превышена максимальная глубина 500, что, вероятно, указывает на наличие цикла объекта (находится в поле 'com. android .defcontainer.obfuscatedForInstantApp.obfuscatedForInstantApp. [... повторяется очень часто ...]. ObfuscatedForInstantAp ...

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

 lUsageStatsMap.remove("com.google.android.defcontainer");

Что означает «запутано для мгновенного приложения»? Что происходит с этим циклом объектов? И почему это происходит только на API26? Спасибо!

...