gpt4 book ai didi

database - 在android kotlin项目中正确连接外部 Realm 数据库文件的问题

转载 作者:搜寻专家 更新时间:2023-10-30 20:23:01 27 4
gpt4 key购买 nike

我想将外部 Realm 数据库连接到我的 Android 项目。 Realm 已经在 build.gradle 中设置好了。我将测试数据库文件:“realmdata.realm”复制到“res”中的“raw”文件夹中。

运行项目给我错误:

Caused by: io.realm.exceptions.RealmFileException: Could not resolve the path to the asset file: realmdata.realm Kind: ACCESS_ERROR.
...
d.androidrealmtestapp.MainActivity.onCreate(MainActivity.kt:40)
...

对应代码行:

realm = Realm.getInstance(c)

无论我更改文件名还是在“res”目录中的位置,输出都是一样的。打印 RealmConfiguration 后,输出为:“realmFileName : default.realm” 为什么使用“default.realm”,因为我给了 Assets 文件名:“realmdata.realm”?我究竟做错了什么?所以我的问题是如何将外部 Realm 文件正确连接到项目?我是 Kotlin 和 Realm 的初学者。

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import io.realm.Realm
import io.realm.RealmConfiguration
import io.realm.annotations.RealmModule

class MainActivity : AppCompatActivity() {

private lateinit var mainRecycler : RecyclerView
lateinit var text: String
private lateinit var realm : Realm

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

println("--------------------------------------------- ")
print(application.assets.toString())

Realm.init(this)

var c = RealmConfiguration.Builder()
.assetFile("realmdata.realm")
.modules(MyModule())
.readOnly()
.build()

println("--------------------------------------------- ")
println(" c configuration builder file:")
println(c)
println("--------------------------------------------- ")

Realm.setDefaultConfiguration(c)
realm = Realm.getInstance(c)

realm.beginTransaction()
print ("realm ...")
realm.commitTransaction()

mainRecycler = findViewById(R.id.main_recycler)
mainRecycler.layoutManager = LinearLayoutManager(this)
mainRecycler.adapter = MainAdapter()

}

@RealmModule(classes = arrayOf(RealmModel::class ))
private class MyModule {}

最佳答案

I copied test database file: "realmdata.realm" into "raw" folder in "res"

您需要将数据库复制到 assets 文件夹

按照此创建 Assets 文件夹。 enter image description here

关于database - 在android kotlin项目中正确连接外部 Realm 数据库文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54733352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com