领域executeTransactionAsync不写入数据到数据库

我在我的项目中使用领域数据库。 我想在应用程序第一次启动时,将我的资产文件夹中的JSON数据写入领域。 我使用Kotlin。 我启动我的领域:

Realm.init(this) val config = RealmConfiguration.Builder() .rxFactory(RealmObservableFactory()) .build() Realm.setDefaultConfiguration(config) 

比我想异步写入List<Data>我的数据库:

 val realm = Realm.getDefaultInstance() realm.executeTransactionAsync { realm.copyToRealm(skillsList) } realm.close() 

但是我的领域db是空的。 realm.copyToRealm(skillsList)我有空表。 哪里不对? 我用Stetho检查桌子,它真的是空的。 我可以修复它?

我有一个错误:

 Realm objects can only be accessed on the thread they were created 

我解决它:

  Thread({ Realm.getDefaultInstance().use { val skillsList = ArrayList<Skill>() val inputSkills = assets.open("skills.json") val size = inputSkills.available() val buffer = ByteArray(size) inputSkills.read(buffer) inputSkills.close() val json: JSONObject = JSONObject(String(buffer)) val skillsArray = json.getJSONArray("skills") (0..skillsArray.length() - 1) .map { skillsArray.getJSONObject(it) } .forEach { skillsList.add(Skill(skillsList.size.toLong(), it.getString("title"), it.getString("subtitle"), it.getInt("rating"))) } it.beginTransaction() it.copyToRealm(skillsList) it.commitTransaction() Log.d("REALM","LOOOOG") } }).start()