Android Realm Schema不匹配错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Realm Schema不匹配错误相关的知识,希望对你有一定的参考价值。
你们如何将你的java领域对象与swift领域对象相匹配?
我的领域开发始于Swift,因此对象服务器包含从swift迁移的数据。然后我使用Java创建我的android版本(使用Realm Studio中的模型)。
Swift:
class OrderItem: Object {
@objc dynamic var id: String = ""
}
Java
public class OrderItem extends RealmObject {
// @PrimaryKey
private String id;
}
Error without @PrimaryKey:
Bad changeset received: Schema mismatch: 'OrderItem' has a primary key on one side, but not on the other.
Error with @PrimaryKey:
Exception has been thrown: The following changes cannot be made in additive-only schema mode: Primary Key for class 'OrderItem' has been added.
任何想法如何解决这些错误?
答案
没有@PrimaryKey时出错:收到错误的变更集:架构不匹配:'OrderItem'在一侧有一个主键,但在另一侧没有。
这表明模式不匹配会执行破坏性模式操作,因此这是不对的。
@PrimaryKey出错:抛出了异常:在仅添加模式模式下无法进行以下更改:已添加类'OrderItem'的主键。
这意味着您可能事先没有使用@PrimaryKey
,因此您在本地仍然拥有一个没有主键的架构,因此您需要擦除应用程序的数据以删除Realm文件,然后再次使用@PrimaryKey
。
以上是关于Android Realm Schema不匹配错误的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“RealmObject 不能作为函数调用”realm-js 错误?