ฉันพยายามใช้ 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 ล้วนๆ