Собственность Kotlin Realm свободна - PullRequest
0 голосов
/ 28 мая 2019

Я обновил android studio и realm и потратил много времени, просматривая ошибки, чтобы заставить его работать. Код ниже работал нормально, прежде чем я все обновил.

Теперь он говорит, что свойство uid никогда не используется, и я получаю сообщение об ошибке при попытке запустить программу. При запуске приложения происходит сбой, и возникает ошибка:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void io.realm.ProxyState.setConstructionFinished()' on a null object reference
        at io.realm.com_myApp_SettingsRealmProxy.<init>(com_myApp_SettingsRealmProxy.java:82)
        at io.realm.DefaultRealmModuleMediator.newInstance(DefaultRealmModuleMediator.java:69)
        at io.realm.Realm.createObjectInternal(Realm.java:1001)
        at io.realm.Realm.createObject(Realm.java:977)

import io.realm.RealmObject
open class Settings() : RealmObject() {
    var name: String = ""
    var uid: Int = 0
    var settings = ""
}

Я использую его следующим образом.

val statsRealm = realm.createObject(Settings::class.java)
   statsRealm.name = "MathTrainerStats"
   statsRealm.settings = generateJSONString()
   realm.commitTransaction()

Это вызывает ошибку, упомянутую выше. Однако, если я добавлю uid, ошибка исчезнет.

val statsRealm = realm.createObject(Settings::class.java)
       statsRealm.uid = 22
       statsRealm.name = "MathTrainerStats"
       statsRealm.settings = generateJSONString()
       realm.commitTransaction()

Я не понимаю, в чем причина ошибки, поскольку код работал до того, как я обновил android studio gradle, kotlin и т. Д.

Вот раздел применения плагина

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

apply plugin: 'realm-android'
android {
    compileSdkVersion 26
    defaultConfig {
   .....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...