Я пытаюсь использовать Realm.io для хранения данных в Android, у меня есть RealmClass
@RealmClass
public open class Alarm : RealmObject() {
@Required
public open var hourOfDay: Int? = null
@Required
public open var minute: Int? = null
@Required
public open var days: BooleanArray? = null
public open var name: String? = null
}
и в onCreate
я пытаюсь добавить некоторые тестовые данные
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mRealm = Realm.getInstance(activity);
mRealm.beginTransaction()
var a = mRealm.createObject(Alarm::class.java)
a.hourOfDay = 12
a.minute = 1;
a.days = booleanArrayOf(true, true, true, true, true, false, false);
a.name = "Test${System.currentTimeMillis()}"
mRealm.commitTransaction()
}
но я получаю исключение.
> java.lang.IllegalArgumentException: Alarm is not part of the schema for this Realm
at var a = mRealm.createObject(Alarm::class.java)
я установил правила королевства
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class *
-dontwarn javax.**
-dontwarn io.realm.**
в > proguard-rules.pro
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
realmFlavor {
proguardFile 'proguard-rules.pro'
}
}
но это не принесло решения
ЗАКЛЮЧЕНИЕ
пока что похоже, что мы должны писать модели на Java, Realm и любых библиотеках ORM. В примерах Kotlin, размещенных на GitHub, есть модели, написанные на чистой Java.