«

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

时间:2024-3-2 18:39     作者:韩俊     分类: Android


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

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

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

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


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卡里即可,当然,需要在配置文件里配置相应的权限。



标签: android

热门推荐