Не найдены свойства для сериализации в классе com.contentful.vault.Asset

Я получаю эту ошибку при попытке сохранить объект в базе данных Firebase со свойством Asset. Подобные ошибки были зарегистрированы в следующих вопросах:

Firebase В классе не найдено свойств для сериализации

Firebase Не найдены свойства для сериализации с объектом в выпуске режим

и некоторые другие.

Некоторые из рекомендуемых решений

  1. Изменить объявления переменных на общедоступные
  2. Добавьте @Keep в объявление класса
  3. Добавьте -keepclassmembers class com.yourcompany.models.** { *; } в правила Proguard

но ни один из этих вариантов не работал для меня.

Я пробовал создать еще один класс, который является копией класса, который я использую для Vault, а затем иметь свойство String, которое содержит URL из Asset, но это похоже на дублирование кода и не нужно.

Есть ли решение этой проблемы?


person Ojonugwa Jude Ochalifu    schedule 27.09.2017    source источник


Ответы (1)


Меня зовут Марио Бодеманн, я сопровождаю Java и Android SDK Contentful.

Я бы рекомендовал разделить проблемы между вариантом использования Firebase и вариантом использования Contentful, как вы тоже предложили.

Таким образом, вы можете быть уверены, что предоставите Firebase модель, которая ему нужна, а Contentful — модель, которая ему нужна, не смешивая обе. Я не вижу в этом повторяющегося кода, вы повторяете данные. И это должно быть хорошо для разных вариантов использования.

Вероятно, некоторые фабрики для преобразования из одной формы в другую по мере необходимости тоже были бы удобны.

В противном случае, возможно, если бы вы могли рассказать немного больше об использовании обоих в одном приложении, мы могли бы помочь вам немного больше...

Привет, Марио

person Mario Bodemann    schedule 27.09.2017
comment
Спасибо, Марио, я думаю, что буду придерживаться отдельных классов для Contentful и Firebase. - person Ojonugwa Jude Ochalifu; 27.09.2017