демо-версия kotlin realm

kotlin version 1.0.0, realm version 0.88.0-SNAPSHOT Я загружаю демоверсию realm kotlin и запускаю, если код выглядит следующим образом:

var person = Person() person.id = 1 person.name = "Young Person" person.age = 14 realm.beginTransaction() realm.copyToRealm(person) realm.commitTransaction() 

throw Exception: Caused by: java.lang.ClassCastException: io.realm.examples.kotlin.model.Person не может быть передан в io.realm.PersonRealmProxyInterface

иначе я меняю код следующим образом:

  realm.beginTransaction() // Add a person var person = realm.createObject(Person::class.java) person.id = 1 person.name = "Young Person" person.age = 14 // When the transaction is committed, all changes a synced to disk. realm.commitTransaction() 

то realm вставляет данные, но person.name, id, age – пустое значение или 0;

как его решить

С Realm 0.88.0-SNAPSHOT вы также должны использовать свой Gradle Plugin. Если вы Google это исключение ( realm java.lang.ClassCastException ProxyInterface ), вы найдете эту realm java.lang.ClassCastException ProxyInterface Github – 2353, которая гласит:

Мы просто объединили наш байтовый код в мастер, и похоже, что он не запускается в вашем случае. Обратите внимание, что из 0.88.0-SNAPSHOT вы должны использовать наш плагин Gradle: https://realm.io/news/android-installation-change/

Раньше вы устанавливали Realm как:

 repositories { jcenter() } dependencies { compile 'io.realm:realm-android:<version>' } 

Теперь вы должны установить его, чтобы включить плагин Gradle:

 buildscript { repositories { jcenter() } dependencies { classpath "io.realm:realm-gradle-plugin:<version>" } } apply plugin: 'realm-android' 

Таким образом, преобразование байтового кода включается. Без этого вы получите ошибку, точно так же, как ваш первый вариант использования (это был правильный код, но для выпуска моментального снимка, который вы выбрали для использования, вам также понадобился дополнительный шаг плагина Gradle). В приведенной выше ссылке есть другие важные примечания, а также заметки о выпуске изменений в последних версиях Realm.