android - FileNotFoundException - 无法使用 Room 实例导入 json
问题描述
我正在尝试使用原始文件夹中的简单 JSON 填充我的 ROOM 数据库,这是我的代码
fun getInstance(context: Context): CarDatabase {
if(instance == null) {
instance = Room.databaseBuilder (
context,
CarDatabase::class.java, "cars_table"
).createFromAsset("app/res/raw/cars_sample.json").build()
}
return instance as CarDatabase
}
我明白了
引起:java.io.FileNotFoundException:app/res/raw/cars_sample.json
解决方案
除非您的模块具有src/main/assets/app/res/raw/cars_sample.json
,否则这不是assets/
JSON 中的有效路径。而且,由于 Android 找不到那个 JSON,我猜你的模块没有那个资产。
从您使用的外观来看,我的猜测是您正在尝试从原始资源填充数据库。原始资源类似于资产,但它们不是资产。
您将需要为您的模块创建一个assets/
目录并将您的 JSON 移动到那里。
推荐阅读
- xml - 为什么这个 XML 格式正确?
- c++ - wchar_t 究竟能代表什么?
- linux - 循环脚本,重定向到文件
- xmgrace - 无法在 xmgrace 中输入 ^
- android - FAILURE:构建失败并出现异常 gradle
- python - 引发 IOError("%s not found." % path) 错误
- python - 如何在 django 中使用 UUID 主键处理 django-graphene?
- mvvm - 选择器更改时 Xamarin MVVM 更新模型
- javascript - 在 Javascript 异步函数之外访问 JSON 数组元素
- intellij-idea - “所选目录不是 JDK 的有效主目录”- jdk-10.0.1