gpt4 book ai didi

Android Room.databaseBuilder().createFromFile() 静默失败

转载 作者:行者123 更新时间:2023-12-02 12:51:20 25 4
gpt4 key购买 nike

我目前有以下工作代码,用于将现有的用户选择的 SQLite 数据库文件从设备导入我的应用程序,该应用程序已经有一个数据库:

    // here goes code to .close() the app's db if isOpen()
// val userChosenUri: Uri? = data?.data

val outStream = getDatabasePath(DATABASE_NAME).outputStream()
val inStream = userChosenUri.toString().let {
userChosenUri?.let { it1 ->
contentResolver.openInputStream(
it1
)
}
}

inStream.use { input ->
outStream.use { output ->
if (output != null) {
input?.copyTo(output)
}
}
}

我正在尝试用我在 Android Room 指南中找到的代码替换它:

    Room.databaseBuilder(this, AppDatabase::class.java, DATABASE_NAME)
.createFromFile(File(userChosenUri!!.path))
.build()

但是最后这个 fragment 似乎没有做任何事情。它不会崩溃,但也不会替换数据库。

有人知道我错过了什么吗?

最佳答案

AFAIK,createFromFile() 仅在数据库不存在时从文件创建数据库。如果您想将其用于导入或从备份恢复方案,我认为您需要在尝试使用后一个代码 fragment 之前关闭并删除现有数据库。

关于Android Room.databaseBuilder().createFromFile() 静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61530467/

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