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不匹配错误的主要内容,如果未能解决你的问题,请参考以下文章

在Android Studio中集成Realm时出错

如何修复“RealmObject 不能作为函数调用”realm-js 错误?

FCM:有没有办法订阅匹配正则表达式的所有主题?

正确处理Android上的Realm实例

共享项目中的 Xamarin Realm,错误“Fody 未正确安装”

chrome 浏览器中不显示 default.realm 文件