No se puede configurar el Reino en el proyecto usando Kotlin

Estoy intentando build un proyecto de testing en Kotlin con Realm. Aquí está mi model:

open class Book : RealmObject() { // Standard getters & setters generated by your IDE… @PrimaryKey open var id: Long = 0 open var title = "" open var description = "" open var author = "" open var imageUrl = "" } 

y aquí hay una exception que obtengo:

 FATAL EXCEPTION: main Process: app.androidhive.info.realm, PID: 18782 java.lang.RuntimeException: Unable to start activity ComponentInfo{app.androidhive.info.realm/app.androidhive.info.realm.activity.MainActivity}: java.lang.IllegalArgumentException: Book is not part of the schema for this Realm at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.IllegalArgumentException: Book is not part of the schema for this Realm 

Busqué la solución y agregué classpath "io.realm:realm-gradle-plugin:2.2.2" en build.gradle y apply plugin: 'realm-android' y

 dependencies { ... // Realm compile 'io.realm:realm-android:0.87.4' kapt "io.realm:realm-annotations:0.87.4" kapt "io.realm:realm-annotations-processor:0.87.4" } 

en script de compilation en la aplicación del module. Me da otro problema:

 Error:(15, 48) Cannot access '<init>': it is public/*package*/ in 'Builder' /Volumes/Toshiba/Users/macuser/Development/Android/Exersises/MyApplication/app/src/main/java/realmtest/realm/RealmController.kt Error:(27, 15) Unresolved reference: refresh Error:(34, 15) Unresolved reference: clear Error:(53, 23) Unresolved reference: allObjects [KOTLIN] deleting /Volumes/Toshiba/Users/macuser/Development/Android/Exersises/MyApplication/app/build/tmp/kotlin-classes/debug on error 

Solo puedo build mi proyecto exitosamente si Book está escrito en java. ¿Alguna sugerencia sobre cómo hacer que Realm y Kotlin trabajen juntos?

Usar la anotación RealmClass + la interfaz RealmModel

 import io.realm.Realm import io.realm.RealmModel import io.realm.annotations.PrimaryKey import io.realm.annotations.RealmClass @RealmClass open class Example( @PrimaryKey open var Id : Long = 0, open var Field : String = "" ) : RealmModel 

En el file gradle module añadir

 apply plugin: 'realm-android' 

En proyecto gradle agregar file

 classpath "io.realm:realm-gradle-plugin:2.2.2" 

No se necesita compilation / kapt adicionales

¡Se ha lanzado Realm Java 4.1.0 y la mayoría de los problemas de Realm with Kotlin se han resuelto! No necesita usar open var solo use var . Puedes probar mi proyecto de muestra . Mi ejemplo es para probar el module en el server de objects Realm con kotlin.

  • Cómo insert el object RealmList con copyToRealm
  • Cómo consultar Realm en el background Subprocess usando RxJava2
  • Realm executeTransactionAsync no escribe datos en DB
  • ¿Cambiar notifications en Realm para objects internos?
  • Acceso al reino desde un hilo incorrecto en Espresso
  • Cómo usar Realm en una biblioteca
  • Realm Turn Transaction en observable
  • Prueba de Android en kotlin de reino
  • El tamaño de RealmResults es cero
  • Realm call setter
  • Cómo arreglar "La característica no es parte del esquema para este Reino" en Kotlin Realm Extention