2017-09-27 65 views
0

在尝试保存具有Asset属性的Firebase数据库上的Object时遇到此错误。 类似的错误已被记录在以下问题:在类com.contentful.vault.Asset上找不到要序列化的属性

Firebase No properties to serialize found on class

Firebase No properties to serialize found with object in release mode

和其他几个人。

一些建议的解决方案是

  1. 变化的变量声明公共
  2. 添加@Keep到类声明
  3. 添加-keepclassmembers class com.yourcompany.models.** { *; }在Proguard的规则

但这些都不选项已为我工作。

我已经试过是创造了另一类是类的副本正在使用Vault,然后有一个String属性,持有AssetURL但是这似乎是代码和不必要的重复。

有没有解决这个问题的方法?

回答

2

我是Mario Bodemann,是Contentful的Java和Android SDK的维护者。

我建议您分离Firebase用例和Contentful用例之间的关系,就像您建议的那样。

通过这种方式,您可以确保为Firebase提供所需模型,并满足所需模型的内容,而不会混淆两者。我不认为它是重复的代码,你正在重复数据。这对于不同的使用情况应该没问题。

也许一些工厂从一种形式转换到另一种形式的需求基础上也会很方便。

否则,也许你可以分享更多的关于您的使用都在一个应用程序,我们可以能够帮助你多一点...

问候, 马里奥

+1

感谢马里奥,我认为我会坚持为Contentful和Firebase分别开设课程。 –