别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述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'的主键。【Android Realm Schema不匹配错误】这意味着您可能事先没有使用
@PrimaryKey
,因此您在本地仍然拥有一个没有主键的架构,因此您需要擦除应用程序的数据以删除Realm文件,然后再次使用@PrimaryKey
。推荐阅读
- 正确处理Android上的Realm实例
- 在Android Studio中集成Realm时出错
- 在React Native App上打开Realm Studio
- android错误(RealmClass注释不支持嵌套类)
- 非root用户手机Android用户可以查看/编辑存储在Realm DB中的数据吗()
- java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget
- Android(在已部署的应用程序中找不到资源异常)
- 如何将现有仪表板复制到Appdynamics中的新项目中
- 正确的Realm Migration Android方式