android - 如何解决错误:java.io.FileNotFoundException
问题描述
在我的应用程序中,我有以下代码:
object FaceDetection {
private val faceModel = "haarcascade_frontalface_default.xml"
private lateinit var faceCascade: CascadeClassifier
fun loadModel(activity: Activity) {
faceCascade = CascadeClassifier(File(activity.filesDir, "das").apply { writeBytes(activity.assets.open(faceModel).readBytes()) }.path)
}
}
上面提到的错误是失败的,我从xml
文件中保存了 2 个副本,一个在xml
文件夹中,一个在main/java
文件夹中,但是它们都没有工作,我应该把这个文件放在哪里,如果有问题如何调用它在我上面的电话中?
我尝试将其解决为:
private fun loadModel(activity: Activity) {
var res = activity.resources
faceModel = res.getXml(R.xml.haarcascade_frontalface_default).text
faceCascade = CascadeClassifier(File(activity.filesDir, "das").apply {
writeBytes(activity.assets.open(faceModel).readBytes())
}.path)
}
但出现错误:
res.getXml(R.xml.haarcas…frontalface_default).text must not be null
解决方案
assets
解决方案是在文件夹下创建文件main
夹,并将文件移动到其中,然后我可以将其读取为:
object FaceDetection {
private val faceModel = "haarcascade_frontalface_default.xml"
private lateinit var faceCascade: CascadeClassifier
fun loadModel(activity: Activity) {
faceCascade = CascadeClassifier(File(activity.filesDir, "das").apply { writeBytes(activity.assets.open(faceModel).readBytes()) }.path)
}
}
推荐阅读
- node.js - Socket.io 多次向客户端发射
- vb.net - Visual Studio 2019 (vb) - 读/写 My.Settings 的问题
- python - 为什么 login_user 函数没有让我登录?
- javascript - Angular 9 应用程序“NgFor 仅支持绑定到 Iterables,例如数组”错误
- unity3d - 选择 Sprite 窗口在我输入每个字母后都有延迟,因为 Unity 过滤精灵
- r - R - 计算文本字符串变量中的单词数
- django - Heroku 阻止 bokeh.js 脚本
- javascript - Angular 中的 Chart.js 图表在调整浏览器窗口大小之前不会加载
- php - PHP 警告:在遍历数组时出现非法字符串偏移 ''
- node.js - 如何通过部署 Node.js AWS Beanstalk 解决 /tmp/.config 中的权限问题?