gpt4 book ai didi

flutter - 未处理的异常 : FileSystemException: Cannot open file, 路径 = 'assets/xml/strings.xml'(操作系统错误 : No such file or directory, errno = 2)

转载 作者:行者123 更新时间:2023-12-03 02:44:58 25 4
gpt4 key购买 nike

我开始学习 Flutter,一切正常,但它不读取 xml 文件
这是 pubspec.yaml 部分:

flutter:
uses-material-design: true
assets:
- assets/
- assets/xml/strings.xml

这是应该读取 xml 的部分:
  void main(){
String file = "";
switch (type){
case TYPE_STRING:
file = 'assets/xml/strings.xml';
break;
}
readFileAsync(file);
}

void readFileAsync(String filePath) {
File file = new File(filePath);
Future<String> futureContent = file.readAsString();
futureContent.then((xmlString) => {
parseXml(xmlString)
});
}

我得到的错误是
Unhandled Exception: FileSystemException: Cannot open file, path = 'assets/xml/strings.xml' (OS Error: No such file or directory, errno = 2)

以下是我的 Assets 在项目结构中的设置方式:
enter image description here

所以,在我看来,我设置了一切正确,有什么问题?

最佳答案

使用rootBundle从应用程序包中访问资源。

也可以调用WidgetsFlutterBinding.ensureInitialized()首先,如果你想使用 rootBundle之前 runApp功能。

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
WidgetsFlutterBinding.ensureInitialized();
String file = "";
switch (type) {
case TYPE_STRING:
file = 'assets/xml/strings.xml';
break;
}
readFileAsync(file);
}

Future<dynamic> readFileAsync(String filePath) async {
String xmlString = await rootBundle.loadString(filePath);
print(xmlString);
return parseXml(xmlString);
}

关于flutter - 未处理的异常 : FileSystemException: Cannot open file, 路径 = 'assets/xml/strings.xml'(操作系统错误 : No such file or directory, errno = 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59436996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com