我有一个RealmAssignment
类,它是我的Realm模块的一部分。删除它并将其从模块中删除后,我在执行realm.deleteAll()
时开始出错。以下是错误跟踪的一部分:
Caused by: io.realm.exceptions.RealmException: 'RealmAssignment' doesn't exist in current schema.
at io.realm.internal.ColumnIndices.getColumnInfo(ColumnIndices.java:112)
at io.realm.RealmSchema.getColumnInfo(RealmSchema.java:250)
at io.realm.ImmutableRealmSchema.get(ImmutableRealmSchema.java:41)
at io.realm.RealmSchema.getAll(RealmSchema.java:88)
at io.realm.BaseRealm.deleteAll(BaseRealm.java:602)
at io.realm.Realm.deleteAll(Realm.java:135)`
我在互联网上搜索过这个错误,这些是我到目前为止所尝试的内容:
-keepnames public class * extends io.realm.RealmObject
添加到我的proguard-rules.pro文件apply plugin: 'realm-android'
来电apply plugin
放入应用级gradle文件中
以上都没有帮助。
我使用以下代码初始化领域:
new RealmConfiguration.Builder()
.modules(new RealmDefaultModule())
.deleteRealmIfMigrationNeeded()
.build();
我还搜索了整个项目,以获取对“RealmAssignment”类或包含它的文本的任何引用,但我没有找到。
非常感谢任何帮助。
编辑:
这是我的RealmDefaultModule
课程:
@RealmModule(classes = {RealmCheckInVolunteerEvent.class,
RealmCheckInLocation.class,
RealmCheckInStaffEvent.class,
RealmEmail.class,
RealmInventoryItem.class,
RealmMember.class,
RealmMemberAssignment.class,
RealmOrganizationalUnit.class,
RealmShift.class,
RealmSize.class,
RealmSizeType.class,
RealmSMS.class,
RealmTimelineItem.class,
RealmUser.class,
RealmUserOrgUnit.class,
RealmUserSizeType.class,
RealmUserSize.class})
public class RealmDefaultModule {
}
我将RealmDefaultConfiguration初始化为单例,这是全班:
public class RealmDefaultConfiguration {
private static RealmConfiguration myConfig;
public static synchronized RealmConfiguration getInstance() {
if (myConfig == null) {
myConfig = new RealmConfiguration.Builder()
.modules(new RealmDefaultModule())
.deleteRealmIfMigrationNeeded()
.build();
}
return myConfig;
}
}
(你觉得这可能有问题吗?)
我将我的默认配置设置为Application
类中的上述内容,如下所示:
Realm.init(this);
Realm.setDefaultConfiguration(RealmDefaultConfiguration.getInstance());
然后在我的MainActivity
中,我打电话给:
Realm realm = Realm.getDefaultInstance();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.deleteAll();
}
});
realm.close();