Android 尝试在应用程序首次加载时创建JSON文件时出现创建失败错误

Android 尝试在应用程序首次加载时创建JSON文件时出现创建失败错误,android,dart,android-emulator,flutter,Android,Dart,Android Emulator,Flutter,我试图创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建几个JSON文件。但是,当我通过Android Studio Emulator运行此程序时,我得到以下错误: 代码: import 'dart:io'; import 'package:path_provider/path_provider.dart'; createFile() async { //Get device document directory path final directory = awai

我试图创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建几个JSON文件。但是,当我通过Android Studio Emulator运行此程序时,我得到以下错误:

代码:

import 'dart:io';
import 'package:path_provider/path_provider.dart';

createFile() async {
  //Get device document directory path
  final directory = await getApplicationDocumentsDirectory();

  //Create savedSettings.json File
  if (File('$directory/savedSettings.json').existsSync()) {
    print("This file already exists");
  } else {
    File('$directory/savedSettingsTest.json').create(recursive: true);
  }
}
错误:

Dart错误:未处理的异常:FileSystemException:创建失败,路径='目录:“”(操作系统错误:只读文件系统,错误号=30)


您需要先请求权限

您可以使用此软件包:

这是您必须添加到
AndroidManifest.xml
文件中的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
下面是示例代码:

 https://pub.dartlang.org/packages/simple_permissions#-example-tab-
不要忘记提取
目录的路径

 final directory = await getApplicationDocumentsDirectory();
 final String path = directory.path;
 File("$path/savedSettings.json")

谢谢,我会调查一下的。如果我想从我的应用程序创建的文件中读取值,我是否需要
ReadExternalStorage
yes,并且您需要在清单上添加此权限:android.permission.read\u EXTERNAL\u storage我仍然收到相同的错误。当我为读写操作打印
getPermissionStatus
时,控制台中会显示以下内容:
PermissionStatus.authorized
谢谢,这很有效。我还有一个简短的问题。如果我使用的是模拟器,我在哪里可以找到我刚在电脑上创建的文件。当我打印
path
时,我得到的
/data/…
似乎找不到。
 final directory = await getApplicationDocumentsDirectory();
 final String path = directory.path;
 File("$path/savedSettings.json")