android - 无法解码流:java.io.FileNotFoundException:/storage/emulated/0/Snapchat/Snapchat-441126967.jpg:打开失败:EACCES(权限被拒绝)
问题描述
每次我尝试在颤振应用程序上选择图像时,我都会不断收到此错误。虽然在应用程序上从我的相机拍摄实时照片效果很好,但是当我尝试访问我的存储时,错误不断出现。
注意:我使用 image_picker 包来选择两个图像并访问相机。
Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Snapchat/Snapchat-441126967.jpg: open failed: EACCES (Permission denied)
一切都运行良好,突然我开始遇到这个问题。我做了以下事情。
在我的 android/app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我也将 requestLegacyExternalStorage 设置为 true。
在 Pubsec.yaml 中
permission_handler: ^8.1.2
image_picker:
颤振版本
Flutter 2.0.5 • channel stable
选择图像的代码块
Future<void> _pickImage(ImageSource source) async {
print(":: Pick Image executed :::");
try {
await Permission.storage.request();
var status = await Permission.storage.status;
print(":::: The Status of the permission is ::::");
print(status);
if (status.isGranted) {
File selected =
await ImagePicker.pickImage(source: source, imageQuality: 30);
final bytes = selected.readAsBytesSync();
String _img64 = base64Encode(bytes);
setState(() {
_imageFile = selected;
base64 = _img64;
});
uploadFile();
}
} catch (error) {
print(error);
}
}
如权限包所示,授予了权限,但是当我从设备库中选择图像时,我仍然会在一天结束时收到错误消息。
解决方案
所以最终我发现这个问题只存在于 android 10 设备上。前进的方法是将我的 image_picker 包更新到最新版本,目前是 0.8.1+3。
一切都很顺利。
推荐阅读
- css - 如何将分页保持在固定位置?
- java - 导入 com.androdocs.httprequest.HttpRequest 中的 Android Studio 错误
- android - requestPermissions() 没有响应,当我单击按钮时没有任何反应
- ios - Firebase 在 iOs pod 上颤振时出错
- symfony - Doctrine 不会在我的 OneToMany 关联中保存数据
- python - Cloudwatch 原始 json 到 python 中的 JSON 提取
- linux - LINUX CP:我需要将所有文件从一个目录复制到另一个目录而不复制任何子目录
- flutter - Flutter - 使列/小部件可变宽度与其他固定?
- apache-flink - 当我尝试读取 kafka 表单时,Flink 抛出 NOSUCHMETHOD ERROR
- java - 使用 Apache PDFBox 创建 PDF 时访问权限无法正常工作