Я хочу подключить базу данных внешних областей к моему проекту Android.Realm уже настроен в build.gradle.Я скопировал тестовый файл базы данных: "realmdata.realm" в папку "raw" в "res".
При запуске проекта выдается сообщение об ошибке:
Причина: io.realm.exceptions.RealmFileException: Не удалось разрешить путь к файлу ресурса: realmdata.realm Kind: ACCESS_ERROR.
...
d.androidrealmtestapp.MainActivity.onCreate (MainActivity.kt: 40)
...
, что соответствует строке кода:
realm = Realm.getInstance(c)
Независимо от того, изменил ли я имя файла или положение в каталоге "res", вывод будет одинаковымПосле печати RealmConfiguration выдается: «realmFileName: default.realm» Почему «default.realm», поскольку я дал имя файла ресурса: «realmdata.realm»?Что я делаю неправильно?Итак, мой вопрос, как правильно подключить внешний файл области к проекту?Я новичок в kotlin и царстве.
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 {}