Kotlin Realm财产未清

时间:2019-05-27 23:19:42

标签: android kotlin realm

我更新了android studio和境界,并花了很多时间来处理错误以使其正常运行。在更新所有内容之前,以下代码可以正常工作。

现在它说从未使用过属性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 {
   .....

0 个答案:

没有答案