Flutter读取外部存储JSON文件遇权限拒绝错误求助
Flutter读取共享外部目录JSON文件时权限被拒绝,可正常写入但无法读取
我在开发Flutter应用时遇到权限问题:能成功将JSON文件保存到共享外部目录/storage/emulated/0/Documents,但读取该文件时却抛出权限错误。
问题详情
使用dart:io包加载目标目录下的JSON文件,写入流程正常,读取时触发以下错误:
PathAccessException: Cannot open file, path = '/storage/emulated/0/Documents/myfile.json' (OS Error: Permission denied, errno = 13)
已尝试的解决方案
- 在
AndroidManifest.xml中声明了READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限 - 已配置
android:requestLegacyExternalStorage="true"
疑问
- 如何无权限问题地从共享外部文件夹加载JSON文件?
- 为什么可以写入该文件夹却无法读取?
代码示例
import 'dart:convert'; import 'dart:io'; import 'flutter_log.dart'; Future<void> loadConfig() async { try { File jsonFile = File('/storage/emulated/0/Documents/myfile.json'); var jsonData = json.decode(jsonFile.readAsStringSync()); writeLog(jsonData); } catch (e) { writeLog('Error: $e'); } }
内容的提问来源于stack exchange,提问作者Joonseo Park
相关产品推荐
相关产品推荐

