当前位置:   article > 正文

Android 通过图库选择图片提示找不到路径 open failed: EROFS (Read-only file system)

Android 通过图库选择图片提示找不到路径 open failed: EROFS (Read-only file system)

app中用户信息上传头像这个挺常见的,一般的都是拍照或选择图片上传。这样一般会出现三个常见问题。

1.进入照相机或图库后,如果没有进行任何操作直接back键返回,有可能造成程序崩溃。

其中一种解决办法就是判断onActivityResult方法里的resultCode,经过测试,我发现,只要是正常的返回,resultCode都是-1,如果没有进行操作的返回,resultCode就会变成0,所以进行以下判断即可:

  1. if (resultCode == 0){ //拍照或选择不成功
  2. return;
  3. }


2.android系统4.4以下和以上(包括4.4)的URI格式有变动,需要进行适配,具体可参考我以前写的文章:

http://blog.csdn.net/wblyuyang/article/details/45223813


3.进入图库选择图片后可解析出路径,但是提示说找不到文件,log输出为:open failed: EROFS (Read-only file system)

这个跟我的程序操作有关。因为上传的是用户头像,并不需要多么清晰,如果太清晰的话,上传时间过长,用户体验不好。所以我在上传前进行了压缩:

path = BitmapUtils.compressImage(sContext, path, 30);
path就是从uri获取的路径,主要问题是在compressImage方法里,这个方法的思路是从path取的图片进行压缩,并存放在path路径下。这样就可能出问题,即如果是内部路径的话,普通程序是没有权限进行写入的,只有读取的权限,如果尝试写入,就会报上面的错误。解决方法也很简单,只需要把压缩后的图片写入到SD卡里即可,当然,需要在配置文件里配置相应的权限。



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/309025?site
推荐阅读
相关标签
  

闽ICP备14008679号