Класс отсутствует в схеме для этой области
Настройка проекта
- Android studio 2.3.3
- область 3.5.0
Источник
RealmController.java
public RealmController(Context context) {
try {
this.context = context;
Realm.init(context);
PrintLog("RealmController", "RealmController", "Init realm", LOG_LEVEL_INFO);
realmInstance = Realm.getDefaultInstance();
PrintLog("RealmController", "RealmController", "Getting realm instance", LOG_LEVEL_INFO);
}
catch (Exception err) {
PrintLog("RealmController", "RealmController", "Error: " + err.getMessage(), LOG_LEVEL_ERROR);
}
}
SellingData.java
public class SellingDataTable extends RealmObject {
public Date todaysDate;
public int sellingData;
public Date getTodaysDate() {
return todaysDate;
}
public void setTodaysDate(Date todaysDate) {
this.todaysDate = todaysDate;
}
public int getSellingData() {
return sellingData;
}
public void setSellingData(int sellingData) {
this.sellingData = sellingData;
}
}
Ожидаемое поведение
- получить экземпляр области по умолчанию.
Фактическое поведение
Разобьется.
08-09 15:24:16.044 [I2maxMain] {Init} (preparing ui)
08-09 15:24:16.120 [RealmController] {RealmController} (Init realm)
08-09 15:24:16.129 [RealmController] {RealmController} (Error: The 'SellingDataTable' class is missing from the schema for this Realm.)
2 ответа:
Если вы создаете область с заданной схемой на устройстве, то если вы начинаете изменять схему (добавляя новые классы, добавляя новые поля, удаляя поля, добавляя/удаляя
@Index
, добавляя/удаляя@Required
, изменяя тип и т. д.) тогда вам нужно либо предоставить миграцию (пример здесь ), либо указатьdeleteIfMigrationNeeded()
в вашей RealmConfiguration.