我有一个接受具有可为空字段的模型的目标。之前,因为该可为空字段并不那么重要(因为我有其他方法来获取该可为空字段的值,基本上该可为空字段是多对多关系),所以我没有费心去获取该字段的值我的API。但现在我有时间优化我的流程,我终于修复了我的 API,现在我还传递了 m2m 字段的值。但是,由于某种原因,具有该值会破坏
NavController
的 navigate()
,而以前对于该 m2m 字段为空值是可以的。两种模型都已经是可序列化的。这是我收到的错误:
FragmentNavigator 不知道片段 SomeFragment。请 使用navigate()函数将片段添加到FragmentNavigator 托管 FragmentManager
我的模型看起来像这样:
data class Account(
@SerializedName("id") var id: String,
... some other fields
@SerializedName("m2m_field") var model1s: List<Model1>?,
) : java.io.Serializable
//Model1 seems to not need @SerializedName(), and I can use it for other Retrofit calls without any issue
//I even got an error when I added @SerializedName() to the fields
data class Model1(
@PrimaryKey(autoGenerate = false) @ColumnInfo(name = "id") var id: String,
@ColumnInfo(name = "created_at") var created_at: String,
... some other fields
) : java.io.Serializable
我已经找到了这个问题的答案。原因有点愚蠢,原因是我在
Model1
上有一个字段可以在我的用例中为 null,但我没有将其声明为可为 null。但有些东西不喜欢那样。因此,请仔细检查您的 Retrofit
回复及其相应的型号,并确保它们 100% 兼容。