V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhttp
V2EX  ›  问与答

求助万能的 V 友,遇见了一个关于在 android 上跑 opencv 的 bug,详见正文

  •  
  •   zhttp · 2021-11-17 16:59:02 +08:00 · 465 次点击
    这是一个创建于 883 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:我实现了一个图像处理算法,用 c++写的,原本是打算放到嵌入式板子上跑的,但是 boss 认为耗时太长,所以希望把这个功能放到我们的手机 app 上,也就是移植到 android 平台上,我对 android 和 java 完全不了解,通过查阅资料,最终使用了 android ndk JNI 的方案,简而言之就是把 c++源码编译成库,通过编写一些中间文件,供 java 调用,目前移植基本完成,可以在 android 上跑通。以上是背景。
    问题:处理完图片使用 imwrite 保存文件,遇到问题,路径读写权限都检查过了没问题,当我第一次使用某个文件名来保存我的图片的时候,例如说“output.jpg”,可以正常保存,在手机的文件管理器中也可以看到图片,这期间,如果这张图片不删除,那就可以一直使用这个文件名保存(也就是可以覆盖),但是如果我手动把这个文件删掉,再次运行程序,imwrite 就会失败,errno 会被设置为 17 也就是文件已存在,哪怕是我删掉应用重新安装( Android studio 调试状态)这个“output.jpg”都没法使用了,哪怕是文件已经删除,在 c++里面使用 access("/path/output.jpg", F_OK)也可以确定文件已经不存在了。
    总结一下:就是从表面上来看,似乎文件名是“一次性”的,只要删掉,之后就不能用了,这就很奇怪
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   941 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.