flutter - 未处理的异常:FileSystemException:无法打开文件,路径 = 'assets/xml/strings.xml'(操作系统错误:没有这样的文件或目录,errno = 2)
问题描述
我开始学习 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)
所以,在我看来,我设置了一切正确,有什么问题?
解决方案
用于rootBundle
访问应用程序包中的资源。
WidgetsFlutterBinding.ensureInitialized()
如果你想使用rootBundle
beforerunApp
函数,也可以先调用。
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);
}
推荐阅读
- vue.js - 创建自动完成输入 Vue Js
- python - 为什么我得到 ValueError: zero-size array to reduction operation maximum which has no identity?
- jquery - 如何在 css clac() 中发送动态值
- yaml - 我正在使用 YAML 文件将对象值解析为 DataFilter 对象
- rest - 使用 REST 和 JSON 而不是 CSV 和 SOAP 的 SalesForce Oauth BULK API
- c++ - Firebase C++ 实时数据库连接在 Windows 上丢失
- r - 如何在ggplot2中正确绘制具有数字x值的多个箱线图?
- javascript - 角度路由错误 - this.router.navigateByUrl() 和 this.router.navigate()
- c# - C# [i, j] 将矩阵的最小“j”值添加到新数组中?
- javascript - 我如何检查是否
在一个里面
包含数据