Я обновил Objectbox с версии 1.5 до новейшей на момент написания 2.3.1 .
Когда я впервые запустил сборку с самой новой версией, мне сказали убрать индекс из двойных переменных, так как он не поддерживается в данный момент (как получилось?).
/**
* Before (working flawlessly on Objectbox version 1.5)
*/
@Entity
public class MyEntity {
@Id(assignable = true) private long id;
private String Name;
private String Address;
private String Name;
private String Meta;
@Index private Double Lat;
@Index private Double Lng;
}
/**
* After removing conflicting indexes (Objectbox version 2.3.1)
*/
@Entity
public class MyEntity {
@Id(assignable = true) private long id;
private String Name;
private String Address;
private String Name;
private String Meta;
private Double Lat; // removed @Index
private Double Lng; // removed @Index
}
В базе данных Objectbox (lib версии 1.5) уже сохранено много сущностей, и я действительно не могу позволить своим пользователям потерять их при таком (тривиальном) обновлении.
Код успешно компилируется после удаления конфликтующего @Index на Lat, Lng, но как только Objectbox инициализирует свою базу данных, я получаю следующее RuntimeException.
java.lang.RuntimeException: Unable to create application com.activity.MyApplication:
io.objectbox.exception.DbException:
Indexing of float and double is currently unavailable. Please remove the index on Property Lat (5, Double)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5743)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
Глядя на diff файла default.json, кажется, что он был успешно обновлен Objectbox, и индексы для Lat, Lng больше не присутствуют.
![enter image description here](https://i.stack.imgur.com/rfGij.png)
Что мне не хватает? Помощь будет высоко ценится.